首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WP_Query中使用LIKE %some_title%实现add_filter

在WP_Query中使用LIKE %some_title%实现add_filter
EN

Stack Overflow用户
提问于 2013-04-19 18:21:57
回答 1查看 6.5K关注 0票数 0

我正尝试在我的WP_Query(下面的代码)中添加一个过滤器来搜索像%some_title%这样的post_title

代码语言:javascript
复制
$args = array(
    'post_type' => 'product',
    'posts_per_page' => $page_size,
    'paged' => $page,
    'post_status'      => 'publish',
    'orderby'          => 'title', 
    'order'            => 'ASC',

  );

  $result = new WP_Query($args);

如何添加过滤器来匹配产品名称和$some_title?

EN

回答 1

Stack Overflow用户

发布于 2013-04-19 18:27:35

你可以这样试一试

代码语言:javascript
复制
$query = "
        SELECT      *
        FROM        $wpdb->posts
        WHERE       $wpdb->posts.post_title LIKE '$param2%'
        ORDER BY    $wpdb->posts.post_title
";
$wpdb->get_results($query);

替代方式和标准方式

代码语言:javascript
复制
add_filter( 'posts_where', 'wpse18703_posts_where', 10, 2 );
function wpse18703_posts_where( $where, &$wp_query )
{
    global $wpdb;
    if ( $wpse18703_title = $wp_query->get( 'wpse18703_title' ) ) {
        $where .= ' AND ' . $wpdb->posts . '.post_title LIKE \'' . esc_sql( like_escape( $wpse18703_title ) ) . '%\'';
    }
    return $where;
}

这样使用

代码语言:javascript
复制
$args = array(
    'post_type' => 'product',
    'wpse18703_title' => 'your string',
    'posts_per_page' => $page_size,
    'paged' => $page,
    'post_status'      => 'publish',
    'orderby'          => 'title', 
    'order'            => 'ASC',

  );
 $result = new WP_Query($args);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16102433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档