1

我遵循了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数组中元素的示例:

在此处输入图像描述

[编辑]

我尝试使用 meta_query:

$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"
);

还是不行

谢谢你的帮助,

4

1 回答 1

1

meta_querywp_postmeta表中的字段上工作;帖子标题存储在wp_posts表格中,因此meta_query在这里对您没有帮助。

在 WordPress stackexchange 上查看这个问题;posts_where通过使用过滤器,答案似乎可以满足您的需求。

于 2013-06-25T19:36:46.770 回答