更改目标作者链接

时间:2017-05-12 作者:Marco Romano

是否可以将普通作者链接的目的地更改为帖子页面或网站内的其他链接?

我已经找到了这个答案,但需要购买php代码。是否有可能找到更简单的方法,在后端形成用户页面?

function wpd_author_link( $link, $author_id, $author_nicename ){
    return \'http://my.blog.tld/\';
}
add_filter( \'author_link\', \'wpd_author_link\', 20, 3 );
谢谢你。

2 个回复
SO网友:hwl

要仅编辑与作者关联的链接,请在函数中。主题的php:

add_filter( \'author_link\', \'new_author_link\', 10, 1 );

function new_author_link( $link ) {      
    $link = \'http://newlink.com/\'; //set this however you wish

    return $link; //after you\'ve set $link, return it to the filter              
}
如果你想把每个作者的链接设置为一个同名的现有wp页面(untested example):

add_filter( \'author_link\', \'new_author_link\', 10, 3 );
function new_author_link( $link, $author_id, $author_nicename ) {

     $page = get_page_by_path( $author_nicename );

     if ($page) { 

         $page = $page->ID;
         $link = get_permalink( $page ); 
     }
     else {
        $link = \'\'; //some default value perhaps
     }
     return $link;
}
更多来自WP Codex onFiltering the Author

更多来自WP Codex onFilters in general.

更新示例:如果您试图将所有作者链接重定向到home_url( \'link\' )

add_filter( \'author_link\', \'new_author_link\', 10, 1 );

function new_author_link( $link ) {         
    $link = home_url( \'link\' ); //set this however you wish

    return $link; //after you\'ve set $link, return it to the filter                
}
如果您试图实现其他一些有条件的If/else:

add_filter( \'author_link\', \'new_author_link\', 10, 1 );

function new_author_link( $link, $author_id, $author_nicename ) {         
    //send author with id one to home link
    if ($author_id == \'1\') {
         $link = home_url( \'link\' ); //set this however you wish
    }
    //send all other authors to some other link
    else {
        $link = \'http://sitename.com/some-other-url/\';
    }

    return $link; //after you\'ve set $link, return it to the filter                
}

SO网友:Marco Romano

目前,我是这样做的:

添加\\u筛选器(“author\\u link”、“my\\u multi\\u author\\u link”,10,2);函数my\\u multi\\u author\\u link($url,$user\\u id){

if ( 1 === $user_id )
    return home_url( \'link\' );

return $url;
}

添加\\u筛选器(“author\\u link”、“my\\u multi\\u author\\u link\\u 2”、10、2);函数my\\u multi\\u author\\u link\\u 2($url,$user\\u id){

if ( 5 === $user_id )

    return home_url( \'link\' );

return $url;
}

结束

相关推荐

WordPress无法访问wp-login.php

对于miskate,我在设置->常规上更改wordpress的url。为了恢复这一点,我更改了wp配置。php文件,并添加此配置。phpdefine(\'WP_HOME\',\'localhost/wordpress\'); define(\'WP_SITEURL\',\'localhost/wordpress\'); 然后我重新启动了apache,我希望我可以再次进入我的管理面板。但是每次我使用localhost/wordpress/wp登录时。php我收到404未找到想法?