修改the_post_navigation以在wordpress中包含分类术语

时间:2017-11-06 16:21:30

标签: wordpress navigation taxonomy

我修改了the_post_navigation $ args,通过将'in_same_term'参数更改为TRUE,在特定的分类术语中导航。它工作得很好。我想要做的是将分类学术语名称添加到'prev_text'和'next_text'参数,以便显示“下一个(分类标准术语)”而不是显示“下一个(分类标准)”的链接:(帖子标题) )”。我认为您需要从页面中获取该术语,将其存储在变量中,就像我在页面顶部显示术语名称一样:

<?php global $post;

$terms = get_the_terms( $post->ID , 'resource_cat' );
foreach ( $terms as $term ) {
echo $term->name;
} ?>

但是,如何在'prev_text'和'next_text'参数中获取该变量?这是我目前的代码:

$args = array(
            'prev_text'          => '&#8592;Previous<span>%title</span>',
            'next_text'          => 'Next<span>%title</span> &#8594;',
            'in_same_term'       => true,
            'taxonomy'           => 'resource_cat',
            'excluded_terms'     => 1,
            'screen_reader_text' => 'Post navigation'
        );
        the_post_navigation($args);

或者这是完全错误的方法吗?

使用以下标准的下一个链接的最终结果示例如下:

CPT=resources (using single-resources.php template)
Taxonomy=resource_cat
Taxonomy Term=Podcasts

期望的结果:下一个播客:“播客名称”

如果有人能用正确的语法帮助我,或者指向一个更好的方向,我们将不胜感激!提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果只有一个resource_cat字词分配给帖子,我认为这样的事情应该有效:

$args = array(
  'prev_text'          => '&#8592; Previous ' . $term->name . ': <span>%title</span>',
  'next_text'          => 'Next ' . $term->name . ': <span>%title</span> &#8594;',
  'in_same_term'       => true,
  'taxonomy'           => 'resource_cat',
  'excluded_terms'     => 1,
  'screen_reader_text' => 'Post navigation'
);
the_post_navigation($args);

我在自己的安装上测试了这段代码,它对我有用。

仅供参考:如果为帖子分配了多个术语,导航链接将仅显示页面顶部循环中最后一个术语的名称。