分页功能在WordPress中不起作用

时间:2017-09-28 12:45:11

标签: wordpress pagination

尽管严格遵循the example in the codex,但在点击分页next链接(http://localhost:3000/my_project/news/page/2/)时我到达的页面不存在(“找不到页面”)。

为什么?

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; echo 'paged = ' . $paged;
$regular_posts = new WP_Query('posts_per_page=3&paged=' . $paged);
while ($regular_posts->have_posts()): $regular_posts->the_post(); 
  the_title();
endwhile;
echo get_next_posts_link('Older Entries', $regular_posts->max_num_pages);

此代码包含在我的“home.php”模板中,管理我在仪表板中创建的“新闻”页面,并在“阅读设置”中设置为“帖子页面”。

4 个答案:

答案 0 :(得分:1)

静态主页与归档略有不同,因为page参数代替paged

Codex Pagination页面包含静态主页的代码,它实际上适用于所有情况(即使是归档页面),因为它检查两个参数:

if ( get_query_var( 'paged' ) ) { $paged = get_query_var( 'paged' ); }
elseif ( get_query_var( 'page' ) ) { $paged = get_query_var( 'page' ); }
else { $paged = 1; }

但如果您只需要它在主页上工作,那么将$ paged变量的代码更改为以下内容也应该有效:

$paged = (get_query_var('page')) ? get_query_var('page') : 1;

答案 1 :(得分:0)

您可以将此代码放在function.php文件中,

test_bash = """
export test_val='123'
echo $test_val
"""

bash_task = BashOperator(
    task_id='test',
    bash_command=test_bash,
    xcom_push=True
    retries=3,
    dag=dag)

此外,将此代码放在您的页面或帖子模板文件中

SELECT  D.DLNOPK, D.STARTDT
FROM    DEALDETAILS D
LEFT JOIN 
            DEALCUSTOMERDETAILS P
ON      P.DLNO = D.DLNOPK
    WHERE P.CUSTOMERID = 'ABCD'; 

答案 2 :(得分:0)

使用新$wp_query->posts_per_page实例更改模板中的WP_Query不起作用,因为在执行模板之前,WordPress已经对$wp_query->max_num_pages验证了所请求的页码。由于请求的页面超过了主查询的此值,因此会提供404.php模板,而home.php模板中的代码甚至无法执行。

诀窍是在执行主查询之前,通过操纵主查询来使用自定义参数,使$wp_query->max_num_pages与真正的最大页数匹配。然后,$wp_query->posts_per_page$wp_query->found_posts会与您的结果相匹配,从而产生$wp_query->max_num_pages

在我看来,最好的方法是在主查询获取帖子之前编辑主查询参数。例如,您可以将以下内容添加到主题的functions.php中:

function custom_main_query($query){
  if(is_admin()) return;
  if(!$query->is_main_query()) return;
  if(is_home()) $query->set('posts_per_page', 3);
}

add_action('pre_get_posts', 'custom_main_query');

这将意味着标准循环也可以解决方案:

// Standard loop
while (have_posts()) : the_post();
  the_title();
endwhile;

// Navigation links
previous_posts_link('Newer Entries');
next_posts_link('Older Entries');

如果您只是在操作每页的帖子数量,最好在WordPress管理员中转到Options => Reading并在此处将Blog pages show at most设置为3来更改每页的默认帖子。< / p>

答案 3 :(得分:0)

由于对模板上显示的帖子数量设置了限制,通常会发生此错误。这可能设置为小于4.因此,请转到WordPress仪表板并导航到/*this code is written in Turbo C++ For Visual Studio, code is in comment*/ int a[10],ct=0,x=10,y=10; //x,y can be any value, but within the range of //array declared randomize(); //there is no need to use this Visual Studio for(int i=0;i<10;i++) { a[i]=random(10); //use a[i]=rand()%10 for Visual Studio } cout<<"\n\n"; do { ct=0; for(i=0;i<x;i++) { for(int j=0;j<y;j++) { if(a[i]==a[j]&&i!=j) { a[j]=random(10); //use a[i]=rand()%10 for Visual Studio } else { ct++; } } } }while(!(ct==(x*y))); 。查找博客页面最多显示,如果值小于4,请将其增加到模板上显示的帖子总数,再加上分页链接(在您的情况下,这应该是至少4)。