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

Last Updated: 2020 年 03 月 05 日 12のコメント

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

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

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

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

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

// WordPress 글 하단에 표시되는 이전 글/다음 글 내비게이션을 카테고리로 제한
// 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/

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

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

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

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

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

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

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

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

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

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

メモ:


12のコメント

コメント

  1. こんにちは先生!
    相違はなく、 WordPress アストラテーマを使用していますが、
    文を一つ読むその下すぐ次の記事が自動的に出てきて読めるようにするには、どうでしょうか

    応答
  2. カテゴリ内での移動で、個々のphpファイルの変更しようとし、第どの部分のコードをどのように変更すればよいマルチ問い合わせください。

    第コードは


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

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

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

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

      |

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

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

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

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

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

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

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

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

    応答