Tip hướng dẫn làm sao debug câu SQL trong Wordpress

Written by Tommy
Posted on Wed, 09/01/2021 - 08:29
20 views

Share Everywhere

Table of contents

Hôm nay mình sẽ chia sẽ với anh chị “Tùy biến tìm kiếm Wordpress theo tiêu đề (custom search by title only wordpress)”. Việc tìm kiếm từ khóa theo title sẽ làm cho kết quả tìm kiếm tốt hơn. Mời anh chị theo dõi,

Code minh họa bên dưới

function search_by_title_only($search, &$query){
    global $wpdb;
    if(empty($search)) {
        return $search;
    }
    $q = $query->query_vars;
    //var_dump($query);
    $n = !empty($q['exact']) ? '' : '%';
    $search =
    $and = '';
    foreach ((array)$q['search_terms'] as $term) {
        $term = esc_sql($wpdb->esc_like($term));
        $search .= "{$and}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
        $and = ' AND ';
    }
    if (!empty($search)) {
        $search = " AND ({$search}) ";
    }
    //var_dump($wp_query);
    //var_dump($wp_query);
    return $search;
}
add_filter('posts_search', 'search_by_title_only', 999, 2);

Code minh họa thứ 2 tìm kiếm field post_password

function __search_by_title_only( $search, &$wp_query )
{
    global $wpdb;
 
    if ( empty( $search ) )
        return $search; // skip processing - no search term in query
 
    $q = $wp_query->query_vars;    
    $n = ! empty( $q['exact'] ) ? '' : '%';
 
    $search =
    $searchand = '';
 
    foreach ( (array) $q['search_terms'] as $term ) {
        $term = esc_sql( like_escape( $term ) );
        $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
        $searchand = ' AND ';
    }
 
    if ( ! empty( $search ) ) {
        $search = " AND ({$search}) ";
        if ( ! is_user_logged_in() )
            $search .= " AND ($wpdb->posts.post_password = '') ";
    }
 
    return $search;
}
add_filter( 'posts_search', '__search_by_title_only', 500, 2 );

Đây là cách show câu SQL trong Wordpress

//add_filter( 'posts_request', 'var_dump_request' );
function var_dump_request($sql) {
    var_dump($sql);
    return $sql;
}

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
2 + 3 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.
Profile picture for user Tommy
Câu nói tâm đắc: “Điều tuyệt với nhất trong cuộc sống là làm được những việc mà người khác tin là không thể!”