1

我正在 WordPress 中创建一个登录页面(一个页面有很多部分),并且我正在使用 get_template_part() 调用每个部分。所以我有这样的东西;

    <?php get_template_part( 'content', 'reasons-to-purchase'); ?>   
    <?php get_template_part( 'content', 'testimonials'); ?>  
    <?php get_template_part( 'content', 'reasons-to-purchase'); ?>   

然后每个内容文件都有一个循环来返回与其类别匹配的帖子,posts_per_page 设置为 1,如下所示(content-reasons-to-purchase.php);

            <?php

        $args = array(
            'post_type' => 'section',    
            'category_name' => 'Reasons-To-Purchase',
            'posts_per_page' => 1,
            'orderby' => 'date',
            'order' => 'DESC'
        );

        $the_query = new WP_Query ( $args );

 if (get_category_by_slug('Reasons-To-Purchase')->category_count > 0 ) {?>


<!-- Featured content image or slider. -->
        <div class="container panel">

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

           <?php the_content(); ?>


        </div>

<?php } ?>

            <?php wp_reset_query(); ?> <div class="clearfix"></div>    

我想要创建尽可能多的这些部分,按照我喜欢的顺序,每个部分中的循环会拉出分配给该类别的下一篇文章。例如,在第一个“购买理由”部分,第一个帖子被拉出,然后在第二个“购买理由”中,第二个帖子被调用。目前我使用'wp_reset_query()'重置每个文件中的循环,因此它不会干扰可能不同的下一部分。基本上,循环必须继续下一个类似的命名部分,而不复制任何帖子..

任何关于如何做到这一点的想法或建议将不胜感激。

4

1 回答 1

1

调用前需要传递页面参数get_template_part()get_template_part()不支持变量复用,需要使用locate_template()include()

$page=1;
include(locate_template('content-reasons-to-purchase.php'));
include(locate_template('content-testimonials.php'));
$page=2;
include(locate_template('content-reasons-to-purchase.php'));
$page=3;
include(locate_template('content-reasons-to-purchase.php'));/* and so on page 4,5,6... */

在您的模板中稍微更改代码

if(empty($page)){
$page=1;
}

 $args = array(
            'post_type' => 'section',    
            'category_name' => 'Reasons-To-Purchase',
            'posts_per_page' => 1,
            'orderby' => 'date',
            'paged'=>$page, /* <======= get page no from your file i.e locate_template(...) and use here*/
            'order' => 'DESC'
        );

希望有意义

于 2013-11-17T15:39:25.367 回答