有没有办法显示所有帖子并根据WP中特定自定义字段的值进行排序?
实施例: 我有一个后牛奶,它有自定义字段
- product_brand = Bear Brand
- product_description = 200 g
- product_price = $ 20.00
- product_week = 2014年6月1日至7日
我想根据产品周价值(2014年6月1 - 7日和2014年6月8 - 14日)显示所有帖子
我在下面尝试过这些代码并且不知道要添加什么来分类这些产品,新手到wp
<?php
query_posts(array(
'meta_key' => 'product_week',
'meta_value' => 'June 01 - 07, 2014'
));
if ( have_posts() ) while ( have_posts() ) : the_post();
echo '<div class="col-md-3">';
the_post_thumbnail('post-thumbnail', array( 'class' => "img-responsive"));
echo '<span class="product-title">';
the_title();
echo '</span>';
echo '<span class="product-price">';
echo '</span>';
echo '</div>';
endwhile;
wp_reset_query();
?>
答案 0 :(得分:1)
datetime的数据只能以日期时间格式存储在mysql数据库中 你没有wordpress问题,这是一个mysql问题
您无法在mysql中存储july , 2012 blah blah
等数据
你必须使用指定的格式
如果你已经以格式存储数据,那么你必须用数字转换这些日期并在post_meta的mysql表中搜索</ p>
在php中查看strtotime
答案 1 :(得分:1)
您没有说明您的代码是否正常运行,但顺序错误或根本不起作用。
我不是wordpress专家,但这并不重要,因为你的问题不是关于Wordpress,而是关于数据库和排序。
为此,您需要为产品周提供一个数字值(隐藏)以及它们的显示描述值。否则你怎么整理它们?
按字母顺序排列,12月是6月之前,4月是第一次。
但是如果使用一个数字,你可以(显然)然后轻松地对它们进行排序,使用的最佳格式是YYWW(年份+周数)。价值1401(2014年第1周)出现在1447(2014年第47周)之前,这是在1501之前,即1536之前等。
所以你最终可能会
product_brand = Bear Brand
product_description = 200 g
product_price = $20.00
product_week = June 01 -07, 2014
Product_week_id = 1427 (or whatever week number it is)
然后您可以调整代码以适应