gpt4 book ai didi

php - Wordpress 分页自定义帖子类型

转载 作者:行者123 更新时间:2023-12-02 06:01:11 25 4
gpt4 key购买 nike

我有一个名为 News 的页面(使用页面模板 page-newslist.php ),它应该显示来自自定义帖子类型的帖子,也称为 News。我意识到两者具有相同的名称会导致问题,因此在注册自定义帖子类型时,我需要重写以将其与页面区分开来:

'rewrite' => array('slug' => 'news-article', 'with_front' => true),

我可以让查询正常工作并正确显示帖子,但毕竟 articles and posts我读过,我无法让分页工作。没有任何东西出现在分页上。

使用页面模板查询没有成功后,我尝试了 archive-news.php方法,它将自动显示来自自定义帖子类型的帖子。分页确实在那里工作。使用这种方法的缺点是没有一个“物理”页面可以将它绑定(bind)到(它也有自定义字段,能够很好地添加(不是硬编码)到菜单中,等等)

这是注册自定义帖子类型的精简代码:
register_post_type('news', array(
'label' => 'News',
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'news-article', 'with_front' => true),
'query_var' => true,
'has_archive' => true,
));

然后是页面模板的代码:
$paged = 1;  
if ( get_query_var('paged') ) $paged = get_query_var('paged');
if ( get_query_var('page') ) $paged = get_query_var('page');
$args = array(
'post_type' => 'news',
'post_status' => 'publish',
'posts_per_page' => 1,
'paged' => $paged
);

$my_query = null;
$my_query = new WP_Query($args);

if($my_query->have_posts()):

while ($my_query->have_posts()) : $my_query->the_post();

...

endwhile;

endif;

wp_reset_query();

// Attempt method 1
posts_nav_link(' — ', __('« Newer Posts'), __('Older Posts »'));

// Attempt method 2
previous_posts_link('« Newer');
next_posts_link('Older »');

有什么想法有什么问题吗?

最佳答案

看看下一页链接页面,这里的例子会有所帮助。 codex.wordpress.org/Template_Tags/next_posts_link

<?php next_posts_link('Older Entries »', 0); ?>

Wordpress 法典示例。
        <?php
// set the "paged" parameter (use 'page' if the query is on a static front page)
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

// the query
$the_query = new WP_Query( 'cat=1&paged=' . $paged );
?>

<?php if ( $the_query->have_posts() ) : ?>



<?php
// the loop
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<?php the_title(); ?>
<?php endwhile; ?>

<?php

// next_posts_link() usage with max_num_pages
next_posts_link( 'Older Entries', $the_query->max_num_pages );
previous_posts_link( 'Newer Entries' );
?>

<?php
// clean up after our query
wp_reset_postdata();
?>

<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

关于php - Wordpress 分页自定义帖子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22843229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com