3
我如何能實現類似%x,%X%,X%與我的自定義wp_query ARGSWordPress的wp查詢LIKE語句
我如何能實現類似%x,%X%,X%與我的自定義wp_query ARGSWordPress的wp查詢LIKE語句
query_posts(array('post_type'=>'photo'));
add_filter('posts_where', 'layzend_posts_where', 10, 2);
function layzend_posts_where($where, &$wp_query)
{
global $wpdb;
$term = $_GET['term'] ? $_GET['term'] : '';
$type = $_GET['type'] ? $_GET['type'] : '';
if (!empty($term))
{
switch ($type)
{
case 'all':
$where .= ' AND ' . $wpdb->posts . '.post_title LIKE \'%' . esc_sql(like_escape($term)) . '%\'';
break;
case 'any':
$terms = explode(' ', $term);
$where .= ' AND ';
foreach ($terms as $t)
{
$whereed[] = $wpdb->posts . ".post_title LIKE '%$t%' ";
}
$where .= '(' . implode(' OR ',$whereed) . ')';
break;
case 'id':
$where .= ' AND ' . $wpdb->posts . '.ID = \'' . esc_sql(like_escape($term)) . '\'';
break;
case 'exact':
$where .= ' AND ' . $wpdb->posts . '.post_title = \'' . esc_sql(like_escape($term)) . '\'';
break;
}
}
return $where;
}
?>
<?php if (have_posts()): ?>
<?php
$paged = get_url_var('page');
$loop = new WP_Query(array(
'post_type' => 'photo',
'posts_per_page' => 12,
'orderby'=> 'post_date',
'' => '',
'paged'=>$paged
));
爲了更好地理解韋迪WordPress的查詢過濾器。您可以在其中附加各種篩選器以生成更復雜的SQL查詢。 –
感謝您的代碼示例。這真的是一個很好的幫助 –