我已经关注了从数据库中获取exercise
个对象的代码片段:
<?php
$args = array(
'post_type' => array( 'excersize' ),
'posts_per_page'=>500,
"orderby"=>"menu_order date"
);
$the_query = new WP_Query($args);
$cources = $the_query->get_posts();
foreach($cources as $cource)
{
$cource->thumb = get_the_post_thumbnail($cource->ID);
$cource->promo = get_post_meta($cource->ID, 'excersize', TRUE);
$cource->link = get_permalink($cource->ID);
}
?>
我跑过所有$cources
后做了一些事情:
<script type="text/javascript">
var courcesJ = <?php echo json_encode($cources);?>;
jQuery(function($) {
for(var i = 0 ; i< courcesJ.length ; i++)
{
// .... do something
}
});
</script>
我的问题是我有很多excersizes
,大约 500 因此页面加载缓慢,
实际上我只需要在-
中显示不包含post_title
字符的对象。所有其他495没有-
,我根本不需要它们。
如何只加载excersizes
post_title
不包含-
字符的特定courcesJ
以提高性能?
这是$args = array(
'meta_query' => array(
array(
'key' => 'post_title',
'value' => '%-%',
'compare' => 'NOT LIKE'
)
),
'post_type' => array( 'excersize'),
'posts_per_page'=>500,
"orderby"=>"menu_order date"
);
数组中的元素示例:
[编辑]
我尝试使用meta_query:
{{1}}
仍然无效
感谢您的帮助,
答案 0 :(得分:1)
meta_query
适用于wp_postmeta
表格中的字段;帖子标题存储在wp_posts
表格中,因此meta_query
对您无效。
在WordPress stackexchange上查看this question;通过使用posts_where
过滤器,答案似乎可以解决您的问题。