2017-06-08 5 views
0

とポスト次または前の記事へ]をクリックし、私はこのコードを使用WordPressの唯一のカテゴリーで前と次 - 複数のカテゴリー

<?php the_post_navigation(array (
      'next_text' => '<span class="meta-nav">' . __('Previous', 'neubau') . '</span> ' . 
       '<span class="screen-reader-text">' . __('Previous Post', 'neubau') . '</span> ', 
      'prev_text' => '<span class="meta-nav">' . __('Next', 'neubau') . '</span> ' . 
       '<span class="screen-reader-text">' . __('Next Post', 'neubau') . '</span> ', 
      'in_same_term' => 'true', 
     )); ?> 

「in_same_termは」=>「true」にを開くために使用されます同じカテゴリの中の次のまたは前の投稿。しかし、これは複数のカテゴリでは機能しません。

私の投稿には3つのカテゴリがあります:ポートフォリオ1、ポートフォリオ2、ポートフォリオ3です。フロントページにこれらの投稿のいくつかを示すために、私は第4カテゴリを追加します:。カテゴリ(たとえば、ポートフォリオ1)内で、次のまたは前の投稿リンクをクリックします。代わりにポートフォリオ-1の前の投稿/次の投稿へ - 次の次または前のポストは二つのカテゴリー(ポートフォリオ-1)を持っている場合、私はの前の投稿/次のポストにリダイレクトしています。

1つのカテゴリの内部にはどうすればいいですか(例:portfolio-1)?

私は似問題を持ついくつかのウェブサイトを見つけましたが、私は自分のコードにTEソリューションを転送することができませんでした。

ありがとうございました。

+0

これは、何度も何度も繰り返してきました。ウェブにはこれに答えることができる多くの記事があります:https://presscustomizr.com/snippet/restrict-post-navigation-category/ –

+0

そうです、多くの記事があります。私はこのpresscustomizr.com-articleを知っていますが、コードは私の問題を解決しなかったし、解決策のアドバイスをくれました。 – wolfmuc

答えて

0

ファイル「リンクtemplate.phpは、」コードの変更のための右のファイルのようです。

function get_the_post_navigation($args = array()) { 
    $args = wp_parse_args($args, array(
     'prev_text'   => '%title', 
     'next_text'   => '%title', 
     'in_same_term'  => true, 
     'excluded_terms'  => '7,37', 
     'taxonomy'   => 'category', 
     'screen_reader_text' => __('Post navigation'), 
    )); 

    $navigation = ''; 

    $previous = get_previous_post_link(
     '<div class="nav-previous">%link</div>', 
     $args['prev_text'], 
     $args['in_same_term'], 
     $args['excluded_terms'], 
     $args['taxonomy'] 
    ); 

    $next = get_next_post_link(
     '<div class="nav-next">%link</div>', 
     $args['next_text'], 
     $args['in_same_term'], 
     $args['excluded_terms'], 
     $args['taxonomy'] 
    ); 

    // Only add markup if there's somewhere to navigate to. 
    if ($previous || $next) { 
     $navigation = _navigation_markup($previous . $next, 'post-navigation', $args['screen_reader_text']); 
    } 

    return $navigation; 
} 

、これは重要な段落のようだ:私は '真' に 'in_same_term' を設定

function get_the_post_navigation($args = array()) { 
    $args = wp_parse_args($args, array(
     'prev_text'   => '%title', 
     'next_text'   => '%title', 
     'in_same_term'  => true, 
     'excluded_terms'  => '7', 
     'taxonomy'   => 'category', 
     'screen_reader_text' => __('Post navigation'), 
    )); 

。 ( "link-template.php"が正しいファイルであるかどうかをテストするために、以前に追加されたコード'in_same_term '=>' true 'をファイル "single.php"から削除しました)。カテゴリ「home」に対して「excluded_terms」「7」を追加しました。結果は前/次が1つのカテゴリの中に残ります。しかし、「ポートフォリオ1」と「家」という2つのカテゴリの投稿は表示されません。

次のステップ:私は2つのカテゴリを持つポストを含むことができ、どのように「ポートフォリオ-1」および「ホーム」とカテゴリ「自宅」で他の記事を除外?

+1

**絶対に**はありません。決して、これまで**これまでコアのWPファイルを変更することはありません。次回更新を実行すると、変更が失われます。 –

+0

私は知っている - 良いアイデア? – wolfmuc

+0

...もっと良いアイデアは、子テーマのファイル "single.php"内のコードを変更することです(このスレッドの最初の記事を参照してください)。 – wolfmuc

関連する問題