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には-ありませんし、まったく必要ありません。

DB から文字を含まない特定の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 に答える