无法让Single.php上的分页使用我的自定义帖子类型

时间:2014-11-10 作者:Lucas Santos

我正在为我的自定义帖子类型使用自定义帖子类型和自定义字段插件。

在我的网站上,除了我的单张外,其他所有分页都很顺利。php。我有一个自定义的post类型的“产品”,其中有几十个产品被分配到一个自定义的“类型”分类法中,到目前为止,我已经在我的其他页面上获得了所有分页来处理自定义查询。

然而,在单。php,我不需要使用自定义查询,所以我不确定我的方法是否正确。

下面是我非常简单的代码:

<div class="wrap">
<?php while ( have_posts() ) : the_post(); ?>

//my custom post type content
<?php the_field(\'image\'); ?>
<?php the_content(); ?>

        <?php endwhile; // end of the loop. ?>

<nav>
<?php previous_post_link(\'&laquo; Prev\') ?>
<?php next_post_link(\'Next &raquo;\') ?>
</nav>

</div><!--endwrap-->
当我添加下一个和上一个帖子链接时,我可以看到下一个和上一个链接以及页面底部,但它不是指向下一个或上一个页面的链接。它只是简单的静态文本,什么都不做。

我不使用自定义查询,因为就像我说的,你不必为单身。php显示自定义帖子类型的内容。

有什么建议吗?

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您需要添加%link 到第一个参数($format) 属于next_post_linkprevious_post_link

这将生成指向相应帖子的html链接

EDIT 1

就在您关于自定义查询的声明中,您是否了解了pre_get_posts 可用于根据需要更改主查询。用自定义查询替换主查询从来都不是一个好主意。

下面是一个将自定义帖子类型添加到主页的示例

function include_post_type( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( \'post_type\', array(\'post\', \'my_post_type\') );
    }
}
add_action( \'pre_get_posts\', \'include_post_type\' );

EDIT 2

就凭你的评论。帖子将根据发布日期显示ASCDESC 取决于您的博客设置。

您可以将这两个链接都设置为在同一期限内仅指向下一篇/上一篇文章的页面。查看第三个参数($in_same_term) 和第五个参数($taxonomy)

默认情况下$in_same_term 设置为false$taxonomy 设置为category. 您可以相应地进行设置。

示例:

next_post_link( \'%link\', \'Next post in types\', TRUE, \' \', \'types\' ); 
这将在该特定帖子所属的相同期限内翻页到下一篇帖子types 分类学

SO网友:Brad Dalton

您还可以创建template tag 就像214默认主题包含的内容,而不是硬编码到单个文件中。

if ( ! function_exists( \'twentyfourteen_post_nav\' ) ) :

function twentyfourteen_post_nav() {
    // Don\'t print empty markup if there\'s nowhere to navigate.
    $previous = ( is_attachment() ) ? get_post( get_post()->post_parent ) : get_adjacent_post( false, \'\', true );
    $next     = get_adjacent_post( false, \'\', false );

    if ( ! $next && ! $previous ) {
        return;
    }

    ?>
    <nav class="navigation post-navigation" role="navigation">
        <h1 class="screen-reader-text"><?php _e( \'Post navigation\', \'twentyfourteen\' ); ?></h1>
        <div class="nav-links">
            <?php
            if ( is_attachment() ) :
                previous_post_link( \'%link\', __( \'<span class="meta-nav">Published In</span>%title\', \'twentyfourteen\' ) );
            else :
                previous_post_link( \'%link\', __( \'<span class="meta-nav">Previous Post</span>%title\', \'twentyfourteen\' ) );
                next_post_link( \'%link\', __( \'<span class="meta-nav">Next Post</span>%title\', \'twentyfourteen\' ) );
            endif;
            ?>
        </div><!-- .nav-links -->
    </nav><!-- .navigation -->
    <?php
}
endif;
然后在endwhile之前添加标记

      // Previous/next post navigation.
    twentyfourteen_post_nav();
                    }
    endwhile; ?>

结束