自定义帖子和帖子-NEXT_POST_LINK和PREVICE_POST_LINK不能一起工作

时间:2013-07-16 作者:robin174

我在同一页上有常规帖子和一个自定义帖子类型(“SS13”)。当您点击每个页面的“单个”页面时,下一个\\u post\\u链接和上一个\\u post链接仅在其帖子组(常规帖子或“SS13”)内有效。我找不到解决方案,因此下一个/上一个工作无法跨越所有帖子。CPT用于行政部门的组织目的。

<?php /* Start loop */ ?>
        <?php while (have_posts()) : the_post(); ?>
            <div class="small-10 large-centered columns">
                <article <?php post_class(\'standard\') ?> id="post-<?php the_ID(); ?>"><!-- \'Standard\' added to the post class for style -->

                    <div class="row banner">
                        <div class="large-12 columns">
                            <?php if(get_field(\'standard_banner_image\')){ ?>
                            <img src="<?php the_field(\'standard_banner_image\'); ?>" alt="Banner Image" />
                            <?php } ?>
                        </div>
                    </div><!-- end .row -->
                </article>
            </div>

            <!-- Post Navigation -->
            <div class="row">
                <div class="small-12 large-centered columns">
                    <div class="navigation">
<p class="center"><?php next_post_link(\'%link\', \'<span class="nextprevious">Next Post:</span>&nbsp;%title\', \'FALSE\'); ?>&nbsp&nbsp;|&nbsp;&nbsp;<?php previous_post_link(\'%link\', \'<span class="nextprevious">Previous Post:</span>&nbsp;%title\',  \'FALSE\'); ?></p>
</div>
                </div>
            </div><!-- end of .row -->
             <?php endwhile; // End the loop ?>
任何帮助都会很好。非常感谢。

1 个回复
SO网友:s_ha_dum

您需要安装过滤器get_{$adjacent}_post_where 添加您的CPT。

function alter_adj_where_wpse_106694($where) {
  $where = str_replace("p.post_type = \'post\'","p.post_type IN (\'post\',\'yourcpt\')",$where);
  return $where;
}
add_filter(\'get_next_post_where\', \'alter_adj_where_wpse_106694\' );
add_filter(\'get_previous_post_where\', \'alter_adj_where_wpse_106694\' );
该回调没有灵活性。这是一个简单的字符串替换。如果这是你的网站,你应该可以,但如果这是一个插件或你正在分发的主题,你需要一个更复杂的回调来补偿其他插件和/或主题的活动。

结束

相关推荐

Pagination posts. Url format

我对很长的帖子使用分页。所以我这里有个问题。我对标准的utl结构不满意(在我的项目中,这有几个个人原因)。例如,我有帖子/post.htm 我需要拿到它的第二页/post2.htm 不是/post.htm/2 我确信我不会用slug post2创建帖子/页面我如何才能以这种方式更改标准url?我试过这个add_action( \'init\', \'wpa5413_init\' ); function wpa5413_init() { add_