<span style="color: #009933; font-style: italic;">/**
* 将WordPress作者存档链接中的用户名改为昵称
* https://www.wpdaxue.com/use-nickname-for-author-slug.html
*/</span>
<span style="color: #666666; font-style: italic;">//使用昵称替换用户名,通过用户ID进行查询</span>
add_filter<span style="color: #009900;">(</span> <span style="color: #0000ff;">'request'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'wpdaxue_request'</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> wpdaxue_request<span style="color: #009900;">(</span> <span style="color: #000088;">$query_vars</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: #990000;">array_key_exists</span><span style="color: #009900;">(</span> <span style="color: #0000ff;">'author_name'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$query_vars</span> <span style="color: #009900;">)</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$author_id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-></span><span style="color: #004000;">get_var</span><span style="color: #009900;">(</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-></span><span style="color: #004000;">prepare</span><span style="color: #009900;">(</span> <span style="color: #0000ff;">"SELECT user_id FROM <span style="color: #006699; font-weight: bold;">{$wpdb->usermeta}</span> WHERE meta_key='nickname' AND meta_value = <span style="color: #009933; font-weight: bold;">%s</span>"</span><span style="color: #339933;">,</span> <span style="color: #000088;">$query_vars</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'author_name'</span><span style="color: #009900;">]</span> <span style="color: #009900;">)</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #000088;">$author_id</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000088;">$query_vars</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'author'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$author_id</span><span style="color: #339933;">;</span>
<span style="color: #990000;">unset</span><span style="color: #009900;">(</span> <span style="color: #000088;">$query_vars</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'author_name'</span><span style="color: #009900;">]</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$query_vars</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #666666; font-style: italic;">//使用昵称替换链接中的用户名</span>
add_filter<span style="color: #009900;">(</span> <span style="color: #0000ff;">'author_link'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'wpdaxue_author_link'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> wpdaxue_author_link<span style="color: #009900;">(</span> <span style="color: #000088;">$link</span><span style="color: #339933;">,</span> <span style="color: #000088;">$author_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$author_nicename</span> <span style="color: #009900;">)</span>
<span style="color: #009900;">{</span>
<span style="color: #000088;">$author_nickname</span> <span style="color: #339933;">=</span> get_user_meta<span style="color: #009900;">(</span> <span style="color: #000088;">$author_id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'nickname'</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: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #000088;">$author_nickname</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000088;">$link</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">(</span> <span style="color: #000088;">$author_nicename</span><span style="color: #339933;">,</span> <span style="color: #000088;">$author_nickname</span><span style="color: #339933;">,</span> <span style="color: #000088;">$link</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$link</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
请先
!