web-dev-qa-db-ja.com

WordPressどのようにlink-template.phpの関数adja_posts_rel_link_wp_head()を正しい方法で上書きするか

私はWordPressの開発にかなり慣れていません。私はWordPress 4.9.2を使っています。私は現在次の問題に取り組んでいます。互いに関係のないブログカテゴリがいくつかあります。たとえば、 "Our Services"や "News"などです。各投稿ページのPrev/Nextリンクが、同じカテゴリ内のPrev/Nextだけを指していることを確認したいと思います。これはページ上のリンクとヘッドセクションのrelリンクに当てはまるはずです。私はちょうど$ in_same_termフラグをtrueに設定しなければならないことをすでに考え出しました。記事の最後にあるリンクについては、正しい引数を追加することで、私のテーマ内ですでに問題を解決しました。 headセクションのrelリンクだけがこのように機能していません。

ヘッダに必要な変更

から

function adjacent_posts_rel_link_wp_head() {
    if ( ! is_single() || is_attachment() ) {
        return;
    }
    adjacent_posts_rel_link();
}

function adjacent_posts_rel_link_wp_head() {
    if ( ! is_single() || is_attachment() ) {
        return;
    }
    adjacent_posts_rel_link('%title', true); //TODO find a better way
}

私はWordPressのコアファイルには触れたくありません。誰かが私を助けて正しいプロセスを案内してくれませんか。

2
dj_thossi

adjacent_posts_rel_link()get_adjacent_post_rel_link() を呼び出し、 {$adjacent}_post_rel_link フィルタを通して戻り値を実行します。フック名の動的部分$adjacentは、隣接関係のタイプ 'next'または 'previous'を参照します。

そのフィルタを使用して、それに応じて出力を変更できます。これは、2番目のパラメータを変更する例です。

add_filter( 'next_post_rel_link', function( $link ) {
  return get_adjaxent_post_rel_link( '%title', true, '', false );
} );

add_filter( 'previous_post_rel_link', function( $link ) {
  return get_adjacent_post_rel_link( '%title', true );
} );
1
swissspidy