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