web-dev-qa-db-ja.com

リンク先投稿者リンクを変更

通常の著者リンクのリンク先を投稿ページまたはWebサイト内の他のリンクに変更することは可能ですか?

私はこの答えを見つけましたが、phpコードを買う必要があります。より簡単な方法で見つけられる可能性はありますか、バックエンドのユーザーページを形成しますか?

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

ありがとうございました。

1
Marco Romano

あなたのテーマのfunctions.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ページに設定するようなことをしたい場合(未テストの例

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 on によるその他の作者のフィルタ処理

WP Codex on 一般的なフィルタの詳細


更新した例では、

すべての作者リンクを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                
}
1
hwl

現時点で私はこのようにしました:

add_filter( 'author_link'、 'my_multi_author_link'、10、2);関数my_multi_author_link($ url、$ user_id){

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

return $url;

}

add_filter( 'author_link'、 'my_multi_author_link_2'、10、2);関数my_multi_author_link_2($ url、$ user_id){

if ( 5 === $user_id )

    return home_url( 'link' );

return $url;

}

0
Marco Romano