<span style="color: #666666; font-style: italic;">// WordPress 自动为文章添加已使用过的标签</span>
<span style="color: #000000; font-weight: bold;">function</span> array2object<span style="color: #009900;">(</span><span style="color: #000088;">$array</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span> <span style="color: #666666; font-style: italic;">// 数组转对象</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #990000;">is_array</span><span style="color: #009900;">(</span><span style="color: #000088;">$array</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000088;">$obj</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> StdClass<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">(</span><span style="color: #000088;">$array</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=></span> <span style="color: #000088;">$val</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
<span style="color: #000088;">$obj</span><span style="color: #339933;">-></span><span style="color: #000088;">$key</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$val</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #009900;">{</span>
<span style="color: #000088;">$obj</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$array</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$obj</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #000000; font-weight: bold;">function</span> object2array<span style="color: #009900;">(</span><span style="color: #000088;">$object</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span> <span style="color: #666666; font-style: italic;">// 对象转数组</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #990000;">is_object</span><span style="color: #009900;">(</span><span style="color: #000088;">$object</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">(</span><span style="color: #000088;">$object</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=></span> <span style="color: #000088;">$value</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000088;">$array</span><span style="color: #009900;">[</span><span style="color: #000088;">$key</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #009900;">{</span>
<span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$object</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$array</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
add_action<span style="color: #009900;">(</span><span style="color: #0000ff;">'save_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'auto_add_tags'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> auto_add_tags<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
<span style="color: #000088;">$tags</span> <span style="color: #339933;">=</span> get_tags<span style="color: #009900;">(</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'hide_empty'</span> <span style="color: #339933;">=></span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">)</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$post_id</span> <span style="color: #339933;">=</span> get_the_ID<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$post_content</span> <span style="color: #339933;">=</span> get_post<span style="color: #009900;">(</span><span style="color: #000088;">$post_id</span><span style="color: #009900;">)</span><span style="color: #339933;">-></span><span style="color: #004000;">post_content</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #000088;">$tags</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$arrs</span> <span style="color: #339933;">=</span> object2array<span style="color: #009900;">(</span><span style="color: #000088;">$tags</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #990000;">shuffle</span><span style="color: #009900;">(</span><span style="color: #000088;">$arrs</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #000088;">$tags</span> <span style="color: #339933;">=</span> array2object<span style="color: #009900;">(</span><span style="color: #000088;">$arrs</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">// 打乱顺序</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">(</span> <span style="color: #000088;">$tags</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$tag</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #666666; font-style: italic;">// 如果文章内容出现了已使用过的标签,自动添加这些标签</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">(</span><span style="color: #000088;">$post_content</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tag</span><span style="color: #339933;">-></span><span style="color: #004000;">name</span><span style="color: #009900;">)</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #000088;">$i</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span> <span style="color: #666666; font-style: italic;">// 控制输出数量</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
wp_set_post_tags<span style="color: #009900;">(</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tag</span><span style="color: #339933;">-></span><span style="color: #004000;">name</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
请先
!