WordPress 同一カテゴリ内で前/次の文で移動するように制限する

  • Naver ブログを共有する
  • Naver バンドに共有する
  • Facebook 共有する
  • Twitter 共有する
  • 카카오스토리공유하기

ワードプレス個別記事かに使用するテーマに沿って前へ、次の文で移動するナビゲーションが表示されることがあります。 通常前へ/次の記事のリンクをクリックすると、カテゴリに関係なく、前へ、または次の文で移動するようになります。 同じカテゴリー内でのみ移動するようにしたい場合があります。

[この記事は2020年3月5日に最終更新されました。 ]

同一カテゴリ内で前へ/次グロー移動制限する方法

ワードプレスで previous_post_link 関数と next_post_link 関数を使用して、個々の記事で前へと次の文で移動できるナビゲーションを追加することができます。 通常はカテゴリーに関係なく、ブログ記事を発行した時点を基準として前へ/次グロー移動します。 (前へ/次の記事ナビゲーション機能の表示するかどうかをテーマにオプションを提供する場合があります。)

同じカテゴリ内でのみ移動するようにしたい場合は、次のようなユーザー関数をテーマの関数ファイルに追加して、テストしてみてください。

// 워드프레스 글 하단에 표시되는 이전 글/다음 글 내비게이션을 카테고리로 제한
// Restrict the post navigation to the same category
add_filter( 'get_next_post_join', 'navigate_in_same_taxonomy_join', 20);
add_filter( 'get_previous_post_join', 'navigate_in_same_taxonomy_join', 20 );
function navigate_in_same_taxonomy_join() {
global $wpdb;
return " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id";
}
add_filter( 'get_next_post_where' , 'navigate_in_same_taxonomy_where' );
add_filter( 'get_previous_post_where' , 'navigate_in_same_taxonomy_where' );
function navigate_in_same_taxonomy_where( $original ) {
global $wpdb, $post;
$where   = '';
$taxonomy   = 'category';
$op   = ('get_previous_post_where' == current_filter()) ? '<' : '>';
$where   = $wpdb->prepare( "AND tt.taxonomy = %s", $taxonomy );
if ( ! is_object_in_taxonomy( $post->post_type, $taxonomy ) )
return $original ;

$term_array = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );

$term_array = array_map( 'intval', $term_array );

if ( ! $term_array || is_wp_error( $term_array ) )
return $original ;

$where   = " AND tt.term_id IN (" . implode( ',', $term_array ) . ")";
return $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $where", $post->post_date, $post->post_type );
}
// Source: https://presscustomizr.com/

上記のコードを使用しているワードプレスのテーマの子テーマを作って子テーマ内にある のfunctions.php ファイルに追加します。 詳細については、 この記事を参照してみてください。

上記の方法がうまくいかなかったら、 この記事に記載されているコードを試してみてください。 リンクされた記事では、テーマのソースファイル(例えば、 single.php)から直接追加する方法ですね。 同様チャイルドテーマを作って作業してください。

この記事を書く時に、このブログに使用していた 冥王星 テーマは、上記のコードを適用するからうまく動作しました。 しかし、上記のコードスニペットは、古いため、最新のワードプレスのバージョンで正常に動作していることをは保証することはできません。

代替1:関連記事リストを表示する

前へ/次の記事ナビゲーションを個別ポストの下部に表示される代わりに、関連記事(関連記事)のリストを表示することを考慮してみることができます。 ああ、海, ニュースペーパー 同じテーマでは、関連記事を表示する機能を提供します。

テーマで関連記事を表示するためのオプションを提供していない場合は、プラグインを使用してみることができます。 たとえば、現在のこのブログに設置されている GeneratePressテーマは機能を最小限に抑えて、速度は速いが、関連記事一覧を表示する機能がありません。 この場合、次の記事で紹介する関連記事関連のプラグイン(例えば、 WP Show Posts)を活用してみることができます。

代替2:Google AdSenseのの一致するコンテンツの広告を表示する

他の方法で Google AdSenseの一致するコンテンツ広告以前の記事/次の記事ナビゲーションや関連記事リストの代わりに活用を試みることができます。 このブログでは、現在の関連記事ではなく、AdSenseの「一致するコンテンツの広告」を表示しています。

前へ/次の記事ナビゲーションの代わりに一致するコンテンツの広告を表示。
このブログには、現在の一致するコンテンツ、広告が表示されている。

一致するコンテンツの広告を表示すると、上記の図のようにAdSenseのバナー広告と一緒に関連記事が表示されます。

注:



9のコメント

  1. テーマを変えたら文の最後に前へ次の記事のリンクが表示されないですね。
    同じカテゴリなく全体文で前へ次の記事が出てくるにはどうすればいいですか?

    応答
    • 個別の記事で前へ、次の記事のリンクが表示されないようですね。 当たるんです?

      これはおそらくテーマオプション内で調整することがないでしょう?
      もしない場合はテーマのソースファイルに直接コードを追加する必要がないようです。

      チャイルドテーマを作成し、single.phpファイル(テーマによって異なります)をチャイルドテーマのフォルダの下にコピーした後、適切な位置に次のコードを追加すると、されています。

      |

      応答
      • 毎回ありがとうございます。 私は時々口*ㅇㄷセン* *と瓶詰め行くだろご存知ですよね?^^^^
        事実、これまでブラインド象たどるようにするのに私もすごく苦しくています。
        図書館で本か借りてきました。 ちょっと良くなればと思います。

      • ありがとうございます〜

        WordPressと関連してご不明な点がございましたら、いつでもコメントにつけていただければ分かる範囲内でお知らせしようとします。(笑)

  2. ありがとうございます。 私だけ適用したが、すぐに適用されました。
    海外との後援はないヘッドてるけど、よく入って、Google AdSenseでもクリックします。
    ありがとう!

    応答
    • ありがとうございます。
      今日も楽しい一日になってください。
      (参考までに、海外でもPayPalでスポンサーが可能です^^)

      応答
  3. 私のブログは、特性上、ウェプトゥン種類がいくつかありますが、常に次の文をクリックすると、
    すべてのカテゴリの次の記事で進み、不便たんですけれど...

    私に必要な機能だったが、このように説明していただきありがとうございます!

    今すぐぜひ適用してみましょう!

    常に多くを学んだんです! 幸せな一日を過ごす!

    応答
    • 基マクヒネヨ。すぐに適用完了しました! お知らせいただきありがとうございます!

      応答
      • よく適用されたことをうれしく思いですね。
        もう1週間だ過ぎ去っね。
        一週間よく仕上げてください^^