私は MySQL クエリについて十分な知識がありませんが、それが示されています。
すべての投稿にカスタム フィールドを設定しています。カスタム フィールドは、投稿のソース URL を「source_url」というキーに保存します。
以下の WP_Query パラメータで動作させていますが、信じられないほど遅いです。50 以上の URL を検索できることに注意してください。
したがって、ソース URL の配列を指定して、一致する投稿を取得したいと考えています。
たとえば、これは私が現在持っている WP_Query で遅いものです:
// var_dump of $urls array (this could be 50+ urls)
array(7) {
[0]=>
string(42) "http://www.youtube.com/watch?v=FMghvnqDhT8"
[1]=>
string(42) "http://www.youtube.com/watch?v=RY-yUFpXTnM"
[2]=>
string(58) "http://www.youtube.com/watch?v=nIm2dnyJ1Ps&feature=related"
[3]=>
string(42) "http://www.youtube.com/watch?v=NoCtRQlJAqM"
[4]=>
string(57) "http://holidaycustoms.blogspot.com/2012/08/busy-week.html"
[5]=>
string(42) "http://www.youtube.com/watch?v=DcZvg197Ie4"
[6]=>
string(42) "http://www.youtube.com/watch?v=7P3UEbLmLuo"
}
// Build Media Query
$meta_query = array(
'relation' => 'OR'
);
foreach( $urls as $url ) {
$meta_query[] = array(
'key' => 'source_url',
'value' => $url
);
}
// Get 20 matching posts from a category set by a variable
$args = array(
'post_type' => 'post',
'posts_per_page' => 20,
'orderby' => 'rand',
'cat' => $cat_ID,
'meta_query' => $meta_query
);
$posts = get_posts($args);
私がやろうとしているのは、上記のコードをカスタムクエリの選択に置き換えることです。これは、 WP_Query よりもはるかに高速です。
しかし、MySQL や WP データベースについて、カスタム選択クエリを作成するのに十分な知識がありません。誰でも助けることができますか?前もって感謝します!