在Meta_Value标题下列出帖子

时间:2011-04-19 作者:AnaRita

我需要列出每年完成的(meta\\u值)项目(meta\\u值),如下所示:

2006年-项目1-项目2。。。

2005年项目3。。。

我发现(here) 我要处理的一段很棒的代码:

<?php // List posts by a Custom Field\'s values
$meta_key = \'year\';  // The meta_key of the Custom Field
$sql = "
   SELECT p.*,m.meta_value
   FROM $wpdb->posts p
   LEFT JOIN $wpdb->postmeta m ON (p.ID = m.post_id)
   WHERE p.post_type = \'post\'
      AND p.post_status = \'project\'
      AND m.meta_key = \'$meta_key\'
   ORDER BY m.meta_value, p.post_date DESC
";
$rows = $wpdb->get_results($sql);
if ($rows) {
   foreach ($rows as $post) {
      setup_postdata($post);
      if ($post->meta_value != $current_value) {
         echo "<h3>$post->meta_value</h3>";
         $current_value = $post->meta_value;
      }
      // Put code here to display the post
      the_title();
   }
}
?>
但我仍然有(1)对代码的进一步要求和(2)代码存在问题,这是:

我需要用另一个meta\\u键(键状态:valuecompleted)过滤查询。

我使用WPML,帖子列表同时显示帖子及其翻译(应该只获取当前语言的帖子)

1 个回复
SO网友:Wyck

您应该使用WordPress的一些内置函数,甚至还有一个新的元比较参数。您可以创建,例如:

$state =  get_post_meta($post->ID, \'meta_state\', true);  //the meta value to compare
$query = new WP_Query
              ( array( 
               \'meta_key\' => \'project\', 
               \'meta_value\' => \'$state\', 
               \'meta_compare\' => \'<=\', 
               \'post_type\' => \'projects\' ) );

//spit them out into yearly dates using a conditional tag

结束

相关推荐

在调用Query_Posts()之后使用wp_list_ages()

可能我只是做错了,所以请随时告诉我您将如何解决此问题。我有一个主要基于页面的网站,但也有一些“页面”,其中我的内容来自自定义query_posts() 呼叫在所有这些页面中,我希望能够使用wp_list_pages() 生成子导航。当我在一个普通页面上时,这很好用,但当我在一个query_posts() 内容,这根本不起作用。这里有一个我所说的“页面”的例子。这是一个主题文件,名为page-media.php:<?php get_header(); ?> <?php q