この関数から返されるリンクを修正するためのフィルタやフックを見つけようとしました
私はほとんどの文書を読み終えました。私はそれがそこにないかどうかわからないか、私はそれを見つけることができません。
任意の提案は非常に高く評価されます。
フィルタはpost_type_archive_link
、 wp-includes/link-template.phpファイルの1112行目で定義されています(WP 4.1.1) :
apply_filters( 'post_type_archive_link', $link, $post_type );
そして使用:
add_filter( 'post_type_archive_link', function( $link, $post_type ) {
//Do something
return $link;
}, 10, 2 );
get_post_type_archive_link()
のソースを見てください。
return apply_filters( 'post_type_archive_link', $link, $post_type );
サイドノート:この関数はhome_url()
を使用しています。これは get_home_url()
のラッパーで、別のフィルタを提供しています。
return apply_filters( 'home_url', $url, $path, $orig_scheme, $blog_id );
それは早く走ります。 "かわいいパーマリンク"を有効にすると、以下の動作をします。
$link = home_url( user_trailingslashit( $struct, 'post_type_archive' ) );
となし:
$link = home_url( '?post_type=' . $post_type );
WPSE Ittikornへようこそ!
ときどきソースを正しく見るのが最も簡単なことがあります。リンクしたCodexページの一番下にリンクもあります。
https://core.trac.wordpress.org/browser/tags/4.1.1/src/wp-include/link-template.php#L1112
実際にはpost_type_archive_link
という名前のフィルタが実際にあることがわかります。
例を挙げましょう。
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;
}