首页 文章

WordPress分页在主页上休息

提问于
浏览
0

我正在尝试让我的主页(home.php)显示来自自定义帖子类型的几个帖子缩略图,并对所有帖子进行分页 .

第一页的工作正常,但是当我尝试进入第二页时,它不起作用 .

如果我将以下代码添加到我的functions.php

function homepage_custom( $query ) 
{
    if ($query->is_home() && $query->is_main_query()) 
    {
        $query->set('post_type', array( 'custom' ));
    }
}
add_action( 'pre_get_posts', 'homepage_custom' );

我没有帖子 .

在没有检查主查询的情况下再次尝试

function homepage_custom( $query ) 
{
    if ($query->is_home()) 
    {
        $query->set('post_type', array( 'custom' ));
    }
}
add_action( 'pre_get_posts', 'homepage_custom' );

我得到了第一篇帖子(我在每页上显示16条) . 当我转到第二页时,URL显示“localhost / page / 2”,但我看到相同的16个帖子 . 将永久链接重置为默认值会给出相同的结果 .

如果我尝试直接从home.php查询:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts(array("post_type" => "custom", "paged" => $paged));

我看到前16个,我在第2页得到404 . 同样,重置永久链接会产生相同的结果 .

  • 我有17个这种自定义类型的帖子 .

  • 每页显示16个我看到相同的帖子有2个页面,每个页面显示5个,我看到相同的帖子有4个页面 .

echo get_query_var( 'paged' );

每次输出0 .

2 回答

  • 0

    尝试使用此代码:

    $pager_id = get_query_var('paged');
    $postsPerPage = 5;
    
    if($pager_id != 0) {
        $search_args = array( 'post_type' => 'custom', 'post_status' => 'publish', 'posts_per_page' => $postsPerPage, 'paged' => $pager_id);
    } else {
        $search_args = array( 'post_type' => 'custom', 'post_status' => 'publish', 'posts_per_page' => $postsPerPage);
    }
    
    $results = new WP_Query( $search_args );
    
  • 0

    猜猜我找到了 .

    在同一页面中,我必须显示两种不同的自定义帖子类型 . 一个帖子类型在主要区域显示,每页16个 . 另一个用于填充侧栏中的列表 .

    使用这段代码我改变了主查询

    function homepage_custom( $query ) 
    {
        if ($query->is_home() && $query->is_main_query()) 
        {
            $query->set('post_type', array( 'custom' ));
        }
    }
    add_action( 'pre_get_posts', 'homepage_custom' );
    

    但是当我在home.php中使用以下内容时

    get_side_bar();
    

    主查询以某种方式被忽略,这就是为什么我对主查询的检查没有任何结果 . 没有主要的查询检查,我总是在搜索我的自定义帖子类型,它适用于前16个帖子,然后来自侧栏的查询以某种方式打破它,它失去了显示哪些帖子的参考,我结束无论页面如何都一样 .

    使用wp_reset_query()方法,从sidebar.php中删除此查询,或使用循环遍历局部变量的WP_query实例解决问题 .

相关问题