如何使用带有NOT LIKE比较的meta_query从wordpress中的DB加载特定对象?

时间:2013-06-25 18:09:45

标签: wordpress

我已经关注了从数据库中获取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" ); 数组中的元素示例:

enter image description here

[编辑]

我尝试使用meta_query:

{{1}}

仍然无效

感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

meta_query适用于wp_postmeta表格中的字段;帖子标题存储在wp_posts表格中,因此meta_query对您无效。

在WordPress stackexchange上查看this question;通过使用posts_where过滤器,答案似乎可以解决您的问题。