J'ai essayé de trouver des filtres ou un crochet pour modifier le lien renvoyé par cette fonction
J'ai parcouru la plupart de la documentation. Je ne suis pas sûr que ce n'est pas là ou je ne suis pas capable de le trouver.
Toutes les suggestions seront les bienvenues.
Le filtre est post_type_archive_link
, défini (WP 4.1.1) à la ligne 1112 du fichier wp-includes/link-template.php :
apply_filters( 'post_type_archive_link', $link, $post_type );
Et l'utilisation:
add_filter( 'post_type_archive_link', function( $link, $post_type ) {
//Do something
return $link;
}, 10, 2 );
Il suffit de regarder le source de get_post_type_archive_link()
:
return apply_filters( 'post_type_archive_link', $link, $post_type );
Note: La fonction utilise home_url()
, qui est un wrapper pour get_home_url()
, qui offre un autre filtre:
return apply_filters( 'home_url', $url, $path, $orig_scheme, $blog_id );
qui court plus tôt. Avec "Pretty permalinks" activé, il exécute les opérations suivantes:
$link = home_url( user_trailingslashit( $struct, 'post_type_archive' ) );
et sans:
$link = home_url( '?post_type=' . $post_type );
Bienvenue sur WPSE Ittikorn!
Parfois, il est plus facile de regarder directement la source. Il existe même un lien au bas de la page du Codex que vous avez liée:
https://core.trac.wordpress.org/browser/tags/4.1.1/src/wp-includes/link-template.php#L1112
Là, vous pouvez facilement voir qu’il existe un filtre appelé post_type_archive_link
Donc, pour vous donner un exemple:
add_filter( "post_type_archive_link", "wpse_179209", 10, 2 );
function wpse_179209( $link, $post_type ){
// Do whatever you want to the $link
return $link;
}