Benutzerdefinierte WP_QUERY $ -Argumente

Ich habe hier eine SQL-Abfrage:

$data_listg = $wpdb->get_results( "SELECT ID FROM " . $wpdb->prefix . "posts where post_type='post' and SUBSTR(" . $wpdb->prefix . "posts.post_title, 1, 1) LIKE '%$data' and post_status='publish' LIMIT 2" ); 

Die Abfrage zeigt Beiträge nach dem ersten Wort an. Beispielsweise:

Wenn Titel mit “A” oder “B” beginnen, dann zeige diesen Beitrag zuerst an.

  • Amerikanische Frisur
  • Ein neuer Audi
  • Tolle Autos
  • Alphabet

oder “B”

  • B

Das Problem ist, wann man ändert:

 $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $args = array( 'paged' => $paged, 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 2 ); 

Wie füge ich das in meine WP_Query $args -Argumente ein?

Solutions Collecting From Web of "Benutzerdefinierte WP_QUERY $ -Argumente"

Sie können benutzerdefinierte Filter in $args (nicht getestet)

 add_filter( 'posts_where', 'find_by_title_filter', 10, 2 ); function find_by_title_filter( $where, &$wp_query ) { global $wpdb; if ( $find_title_arg = $wp_query->get( 'find_title' ) ) { $where .= ' AND ' . $wpdb->posts . '.post_title LIKE \'%' . esc_sql( $wpdb->esc_like( $find_title_arg ) ) . ''; } return $where; } $custom_var = 'a'; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'paged' => $paged, 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 2, 'find_title' => $custom_var ); 

yess Getriggers ich modifiziert

 add_filter( 'posts_where', 'find_by_title_filter', 10, 2 ); function find_by_title_filter( $where, &$wp_query ) { global $wpdb; if ( $find_title_arg = $wp_query->get( 'find_title' ) ) { $where .= " AND SUBSTR(" . $wpdb->posts . ".post_title,1,1) LIKE '%$find_title_arg%' "; } return $where; }