获取帖子、短码插件和meta_Query?

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

我正在使用Get Posts 用于列出帖子类型为“project”的帖子的插件。我想通过两个自定义字段过滤列表:年份(例如2006年)和状态(例如完成)。我补充道meta_query 到插件的get_post args并尝试了短代码:

[get_posts post_type="project" meta_query="array(array(\'key\' => \'state\', \'value\' => 
\'Completed\'),array(\'key\' => \'year\',\'value\' => \'2006\'))" suppress_filters="false"]
这是行不通的,虽然我可以让“state”和“year”通过它们自己的使用来工作meta_keymeta_value.

有人能给我指出正确的方向吗?

3 个回复
最合适的回答,由SO网友:scribu 整理而成

除了插件没有更新之外,这也不起作用,因为meta\\u query arg被计算为字符串:

array(3) {
  ["post_type"] => string(7) "project"
  ["meta_query"] => string(96) "array(array(\'key\' => \'state\', \'value\' => 
\'Completed\'),array(\'key\' => \'year\',\'value\' => \'2006\'))"
  ["suppress_filters"] => string(5) "false"
}
我建议你custom page template, 您可以使用所需的meta\\u查询直接调用get\\u posts()。

您必须复制处理帖子实际列表的代码。

SO网友:t31os

我认为插件没有被更新以支持新的查询参数,或者在本例中,特别是meta_query 参数。

插件页面列出了兼容性3.0.5, 如果我没记错的话,meta_query 于中引入3.1, 因此,我自然会得出结论,目前还没有得到支持。。

我可能错了,只是把这些点连起来。。

SO网友:John P Bloch

插件使用shortcode_atts 要限制接受参数的列表,请执行以下操作:

http://plugins.trac.wordpress.org/browser/nurelm-get-posts/tags/0.3/get-posts.php#L29

meta_query 不在该列表中。我建议分叉插件或要求作者更新它以允许元查询。

结束

相关推荐

Nested Shortcode Detection

如果您熟悉此代码<?php $pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { //shortcode is being used }&#