fauzanjeg

Fix Search Post in Filter Options

Apr 7th, 2021 (edited)
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.18 KB | None | 0 0
  1. add_action( 'wp_ajax_jeg_find_post', 'jeg_find_post' );
  2.  
  3. function jeg_find_post() {
  4.     if ( isset( $_REQUEST['nonce'], $_REQUEST['query'] ) && wp_verify_nonce( sanitize_key( $_REQUEST['nonce'] ), 'jeg_find_post' ) ) {
  5.  
  6.         $query = sanitize_text_field( wp_unslash( $_REQUEST['query'] ) );
  7.  
  8.         if ( (bool) $query ) {
  9.             add_filter(
  10.                 'posts_where',
  11.                 function ( $where ) use ( $query ) {
  12.                     global $wpdb;
  13.  
  14.                     // if ( isset( $_REQUEST['string'] ) && ! empty( $_REQUEST['string'] ) ) {
  15.                     //  $string = $_REQUEST['string'];
  16.  
  17.                     $where .= $wpdb->prepare( "AND {$wpdb->posts}.post_title LIKE %s", '%' . $wpdb->esc_like( $query ) . '%' );
  18.                     // }
  19.  
  20.                     return $where;
  21.                 }
  22.             );
  23.         }
  24.  
  25.         $query = new \WP_Query(
  26.             [
  27.                 'post_type'      => 'post',
  28.                 'posts_per_page' => '15',
  29.                 'post_status'    => 'publish',
  30.                 'orderby'        => 'date',
  31.                 'order'          => 'DESC',
  32.             ]
  33.         );
  34.  
  35.         $result = [];
  36.  
  37.         if ( $query->have_posts() ) {
  38.             while ( $query->have_posts() ) {
  39.                 $query->the_post();
  40.  
  41.                 $result[] = [
  42.                     'value' => get_the_ID(),
  43.                     'text'  => get_the_title(),
  44.                 ];
  45.             }
  46.         }
  47.  
  48.         wp_reset_postdata();
  49.         wp_send_json_success( $result );
  50.     }
  51. }
Add Comment
Please, Sign In to add comment