存储/查询自定义日期数据

时间:2014-01-14 作者:Jonnyauk

我目前正在建立一个网站,在那里我需要按日期数据过滤/订购/查询自定义帖子类型。我无法使用帖子发布日期来进行此操作,但无法确定将此附加到帖子以在网站前端进行进一步查询/过滤的最有效方式。

据我所知,我的选择是:

1 - Store as custom field (probably in UNIX timestamp format)我可以看出这是可行的,但随着帖子数量的增长(可能会增加到数千篇),我担心它的可扩展性,因为所有帖子都必须被查询,才能按自定义字段进行搜索/筛选。。。这似乎效率不太高。

2 - Store as a taxonomy (Year->month->day)我已经编写了一个自定义插件来预填充分类法的术语,所以对其稍加修改就可以在未来几年内为年(父)->月(子)->日(孙子)设置术语!在我看来,这似乎可以在将来构建更高效的查询?从表面上看,这样做有点奇怪,但我认为这会在网站前端产生更有效的查询和帖子过滤,因为查询的是分类表,而不是所有帖子中的自定义字段。

这是不是太过分了?我非常感谢大家对什么最有效的意见。我应该提到,从管理的角度来看,我有一个自定义的帖子创建/编辑过程,所以这不会影响我的决定。我真的只是想找出将自定义日期数据附加到自定义帖子类型并对其进行查询的最佳方法(当然是数百篇,如果不是数千篇的话!!)

2 个回复
最合适的回答,由SO网友:Mike F 整理而成

我将存储为自定义字段,就像您所说的时间戳或ISO 8601(YYYY-MM-DD)。这样你就可以利用WP_Query\'s Custom Field Parameters 用于主题文件中的查询。

例如:

// Get posts where the custom field is less than the current time

$foo = new WP_Query(array(
  // other query vars...
  \'meta_query\' => array(
    array(
      \'key\' => \'date_custom_field\',
      \'value\' => time(),
      \'compare\' => \'<\'
    )
  )
));

SO网友:sn0lan

如果将它们保存为自定义元字段,则可以将其添加到查询中:

\'meta_key\'       => \'field_name\',
\'orderby\'        => \'field_name\'

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post

存储/查询自定义日期数据 - 小码农CODE - 行之有效找到问题解决它

存储/查询自定义日期数据

时间:2014-01-14 作者:Jonnyauk

我目前正在建立一个网站,在那里我需要按日期数据过滤/订购/查询自定义帖子类型。我无法使用帖子发布日期来进行此操作,但无法确定将此附加到帖子以在网站前端进行进一步查询/过滤的最有效方式。

据我所知,我的选择是:

1 - Store as custom field (probably in UNIX timestamp format)我可以看出这是可行的,但随着帖子数量的增长(可能会增加到数千篇),我担心它的可扩展性,因为所有帖子都必须被查询,才能按自定义字段进行搜索/筛选。。。这似乎效率不太高。

2 - Store as a taxonomy (Year->month->day)我已经编写了一个自定义插件来预填充分类法的术语,所以对其稍加修改就可以在未来几年内为年(父)->月(子)->日(孙子)设置术语!在我看来,这似乎可以在将来构建更高效的查询?从表面上看,这样做有点奇怪,但我认为这会在网站前端产生更有效的查询和帖子过滤,因为查询的是分类表,而不是所有帖子中的自定义字段。

这是不是太过分了?我非常感谢大家对什么最有效的意见。我应该提到,从管理的角度来看,我有一个自定义的帖子创建/编辑过程,所以这不会影响我的决定。我真的只是想找出将自定义日期数据附加到自定义帖子类型并对其进行查询的最佳方法(当然是数百篇,如果不是数千篇的话!!)

2 个回复
最合适的回答,由SO网友:Mike F 整理而成

我将存储为自定义字段,就像您所说的时间戳或ISO 8601(YYYY-MM-DD)。这样你就可以利用WP_Query\'s Custom Field Parameters 用于主题文件中的查询。

例如:

// Get posts where the custom field is less than the current time

$foo = new WP_Query(array(
  // other query vars...
  \'meta_query\' => array(
    array(
      \'key\' => \'date_custom_field\',
      \'value\' => time(),
      \'compare\' => \'<\'
    )
  )
));

SO网友:sn0lan

如果将它们保存为自定义元字段,则可以将其添加到查询中:

\'meta_key\'       => \'field_name\',
\'orderby\'        => \'field_name\'

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post