Tip hướng dẫn làm sao debug câu SQL trong Wordpress
1st Sep 2021Hô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