Post Templates and Post ID's

时间:2013-07-11 作者:Nigel

我正在尝试为单个帖子使用单个模板(我有一个自定义模板)。但由于某种原因,我的帖子被覆盖,而不是显示新数据。

这是我现在的设置

<div class="details">
<?php global $post;
 $category_id=get_the_category($post->ID);

$announcements = new WP_Query(); 
$announcements->query(\'showposts=1&cat=$category_id\');
while ( $announcements->have_posts() ) :  $announcements->the_post(); ?>  

    <p><strong>Published by:<span itemprop="publisher"><?php echo 
get_post_meta($post->ID, \'Publisher\',\'true\');?></strong></p>

<?php endwhile;?>
</div>

3 个回复
SO网友:s_ha_dum

但由于某种原因,我的帖子被覆盖,而不是显示新数据。

问题在于:$announcements->query(\'showposts=1&cat=$category_id\');

您试图在单引号字符串中使用变量。Variables do not expand inside single quotes 所以与其要求cat=1, 或cat=2, 你实际上是在要求cat=$category_id-- 就像那样,完整地拼写出来。

您需要的是双引号:$announcements->query("showposts=1&cat=$category_id");. 变量以双引号展开。

或者更好的是,一个数组--更具可读性和可维护性:

$args = array(
  \'posts_per_page\' => 1,
  \'cat\' => $category_id,
);
注:showposts 已弃用。使用posts_per_page.

SO网友:dannyw24

您需要像这样向新对象传递参数。

$category_id = get_the_category( $post->ID );

$args = array(
    \'posts_per_page\' => 1,
    \'category\'       => $category_id
);

$announcements = new WP_Query( $args ); 
这个页面应该为您的代码提供一些帮助,我认为您的代码中有一些拼写错误,您如何调用循环的顺序有点错误。WP_Query in Codex.

SO网友:Johnny Hankgard

我试过了,但它仍然覆盖了例如

the_title(), get_post_meta($post->ID, \'key\', \'true\'), the_post_thumbnail(),
而且几乎所有的内容都被覆盖(我的意思是,当我使用相同的模板发表两篇文章时,字段、标题和图像都被覆盖。)我是这样做的:

<?php
$category_id = get_the_category( $post->ID ); $args =  

array(\'posts_per_page\' => 1, \'category\' => $category_id); $announcements = 
new WP_Query( $args );

while($announcements->have_posts()): $announcements->the_post();

?>
<div class="cover"><?php the_post_thumbnail(); ?></div>
<p><strong><span itemprop="title"><?php the_title();?></span></strong></p>
</div>

<?php endwhile;?>

结束

相关推荐

Custom query to show posts

我正在尝试根据评级(使用wp postrating插件)和评论数对帖子进行排序。我已经使用wpdb实现了这一点,但我有点希望使其更容易,并将其用于wp\\U查询。似乎我找不到任何方法来实现这一点,因为我不知道在$args中按两个项目排序的任何方法。我的wpdb代码如下所示。。。$wpdb->get_results(\"SELECT wp_postmeta.meta_value, id, post_title, comment_count FROM wp_posts INNER JOIN wp