Est-il possible de changer la destination du lien de l'auteur normal vers une page de publication ou un autre lien du site?
J'ai trouvé cette réponse mais j'avais besoin d'acheter du code php. Est-il possible de trouver un moyen plus simple de créer la page des utilisateurs dans le back-end?
function wpd_author_link( $link, $author_id, $author_nicename ){
return 'http://my.blog.tld/';
}
add_filter( 'author_link', 'wpd_author_link', 20, 3 );
Je vous remercie.
Pour éditer uniquement le lien associé aux auteurs, dans le fichier functions.php de votre thème:
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
}
Si vous souhaitez faire quelque chose comme définir le lien de chaque auteur vers une page wp existante du même nom ( exemple non testé ):
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;
}
Plus de WP Codex sur Filtrage de l'auteur
Plus de WP Codex sur Filtres en général.
Si vous essayez de rediriger tous les liens d'auteur vers 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
}
Si vous essayez d’atteindre un autre condition si/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
}
Au moment où j'ai fait de cette façon:
add_filter ('author_link', 'my_multi_author_link', 10, 2); function 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); function my_multi_author_link_2 ($ url, $ user_id) {
if ( 5 === $user_id )
return home_url( 'link' );
return $url;
}