将$query传递到单独的模板文件



我有以下代码:

主页.php

<?php
$query = new WP_Query(
array(
'order'       => 'ASC',
'orderby'     => 'menu_order',
'post_type'   => 'work'
)
);
?>
<?php get_template_part('loop', 'feed-work'); ?>
<?php wp_reset_query(); ?>

循环馈送工作.php

<?php if($query->have_posts()) : ?>
<?php while($query->have_posts()) : $query->the_post(); ?>
<?php the_title(); ?>
<?php endwhile; ?>
<?php endif; ?>

但当我查看我的主页时,我会收到以下错误:

致命错误:未捕获错误:调用上的成员函数have_posts((******/循环提要work.php中为null:1

这可能是因为查询在不同的模板文件中吗?

这正是问题所在。不幸的是,get_template_part不像include那样工作,因此在包含的文件中时会丢失范围变量。在保持相同逻辑的同时,该问题的解决方案是更改get_template_part并使用:

// $templates[] = "{$slug}-{$name}.php"; // This is how wp builds the slug iside get_template_part
include locate_template('loop-feed-work.php');

相关内容

  • 没有找到相关文章

最新更新