分類名が'portfolio_category'
のカスタム投稿タイプname->('portfolio')
があります。
私が欲しいのは、single-portfolio.phpという単一のページファイルに次と前のリンクを追加することです。どちらかのリンクをクリックすると、同じ投稿タイプで同じ分類用語の次または前の投稿にリダイレクトされます。
私はnext_post_link()
とprevious_post_link()
を使いましたが、それはシングルポストでしか動作せず、シングルカスタムポストタイプでは動作しないようです。
任意の提案は大歓迎です。
previous_post_link() および next_post_link() カスタム投稿タイプでは完全に機能します。このコードをあなたのsingle-customposttype.php(あなたの場合はsingle-portfolio.php)に貼り付ける必要があります。
<div class="previous-post-link">
<?php previous_post_link('%link', '<< Previous Post', $in_same_term = true, $excluded_terms = '', $taxonomy = 'the-custom-taxonomy-associated-with-your-custom-post-type'); ?>
</div>
<div class="next-post-link">
<?php next_post_link('%link', 'Next Post >>', $in_same_term = true, $excluded_terms = '', $taxonomy = 'the-custom-taxonomy-associated-with-your-custom-post-type'); ?>
</div>
$taxonomy
と next_post_link
の両方のprevious_post_link
パラメータはWordpressバージョン3.8で導入されました。
$in_same_term
パラメーターがtrueに設定されている場合は、$taxonomy
パラメーターを希望の分類法に設定する必要があります。デフォルトではcategory
に設定されています。 post_format
も分類法です
例:
next_post_link( '%link', 'Next post in category', TRUE, ' ', 'post_format' );
ちょっと注意してください、 next_post
と previous_post
を使わないでください。 Wordpressバージョン2.0.0からすでに減価償却されています。 wp-includes/deprecated.php#L121 および wp-includes/deprecated.php#L158 を参照してください。
_編集_
単一の投稿リンクは、現在の投稿の投稿タイプが隣接する投稿を取得するために使用されるのと同じ投稿タイプ内の投稿間を自動的にページ送りします。次と前の投稿のリンクで使用されているソースコード get_adjacent_post()
を確認してください。 1550行目(特にバージョン4.1用)に特に注意してください。
1550 $where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $where", $current_post_date, $post->post_type ), $in_same_term, $excluded_terms );
このコードをあなたのsingle-cpt.phpファイルに追加してください。
<?php previous_post_link('%link', 'Previous in CPT', TRUE) ?>
<?php next_post_link('%link', 'Next in CPT', TRUE) ?>
Cptはカスタム投稿タイプの名前です。