wake-up-neo.net

Link des Zielautors ändern

Ist es möglich, das Ziel des normalen Autorenlinks auf eine Postseite oder einen anderen Link innerhalb der Website zu ändern?

Ich habe diese Antwort gefunden, brauche aber PHP-Code. Ist es einfacher möglich gefunden, die Benutzerseite im Backend zu bilden?

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

Vielen Dank.

1
Marco Romano

So bearbeiten Sie nur den mit Autoren verknüpften Link in der functions.php Ihres Themas:

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              
}

Wenn Sie beispielsweise den Link eines jeden Autors zu einer vorhandenen WP-Seite mit demselben Namen setzen möchten ( ungetestetes Beispiel ):

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;
}

Mehr von WP Codex on Filtering the Author

Mehr von WP Codex on Filter im Allgemeinen.


Für Ihr aktualisiertes Beispiel:

Wenn Sie versuchen, alle Autorenlinks zu home_url( 'link' ) umzuleiten

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                
}

Wenn Sie versuchen, eine andere Bedingung zu erreichen, wenn/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

Im Moment habe ich das so gemacht:

add_filter ('author_link', 'my_multi_author_link', 10, 2); Funktion 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); Funktion my_multi_author_link_2 ($ url, $ user_id) {

if ( 5 === $user_id )

    return home_url( 'link' );

return $url;

}

0
Marco Romano