我有一个模板文件( trendingPosts.php ),用于显示标签为'trending'的2个最新帖子。在用于显示这两个帖子的while循环中,我将它们的ID放在一个数组中,以便我可以在以后将它们从主要的wordpress循环中排除:
<div id="trendingWrap" class="clearfix">
<?php
$trending = new WP_Query();
$trending->query("showposts=2&tag=trending");
while($trending->have_posts()) : $trending->the_post();
$wp_query->in_the_loop = true;
$currentTrending[] = $post->ID;
?>
<div class="trendingStory">
<h2 class="trendingTitle"><a href="<?php the_permalink(); ?>" alt="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
</div><!-- end trendingStory -->
<?php endwhile; ?>
</div><!-- end trendingWrap -->
问题是我有 index.php ,其中我通过get_template_part( 'loop', 'index' );
包含了 loop.php ,我无法获得{{ 1}}我在 trendingPosts.php 中创建的数组。 我需要在 loop.php
此外,在我的 loop.php 中,我按以下方式排除了2个帖子。
$currentTrending[]
这是排除帖子的正确方法吗?如果有人有更好的办法做这整件事。请告诉我。 当然,在我设法在 loop.php 中获取该数组之前没有任何作用,因此这是主要问题。
谢谢!我感谢所有的帮助。
答案 0 :(得分:1)
尝试将当前趋势代码移动到主题的functions.php,以便您可以随时调用它。
function getCurrentTrending() {
$trending = new WP_Query();
$trending->query("showposts=2&tag=trending");
while($trending->have_posts()) : $trending->the_post();
$wp_query->in_the_loop = true;
$currentTrending[] = $post->ID;
endwhile;
return $currentTrending;
}
然后,您可以从任何模板文件中获取该数组:
$currentTrending = getCurrentTrending();
希望有所帮助。
答案 1 :(得分:1)
您可以使用$GLOBALS
superglobal数组轻松创建可以随处访问的变量。
设置后
$GLOBALS['mytheme_thisismyvar'] = 22;
然后,您可以在其他模板中随处访问它:
$myvar = $GLOBALS['mytheme_thisismyvar'];
并在适合的地方使用它。这适用于子模板,无论它们如何加载。
因为整个程序共享这个超全局数组,所以请注意不要覆盖现有值。