Astra_Target_Rules_Fields::search_only_titles( (string) $search, (WP_Query) $wp_query )

Return search results only by post title.


Description

This is only run from astra_get_posts_by_query()


Parameters

$search

((string)) (Required) Search SQL for WHERE clause.

$wp_query

((WP_Query)) (Required) The current WP_Query object.


Return

((string)) The Modified Search SQL for WHERE clause.


Source

File: classes/modules/target-rule/class-astra-target-rules-fields.php

		public function search_only_titles( $search, $wp_query ) {
			if ( ! empty( $search ) && ! empty( $wp_query->query_vars['search_terms'] ) ) {
				global $wpdb;

				$q = $wp_query->query_vars;
				$n = ! empty( $q['exact'] ) ? '' : '%';

				$search = array();

				foreach ( (array) $q['search_terms'] as $term ) {
					$search[] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like( $term ) . $n );
				}

				if ( ! is_user_logged_in() ) {
					$search[] = "$wpdb->posts.post_password = ''";
				}

				$search = ' AND ' . implode( ' AND ', $search );
			}

			return $search;
		}

User Contributed Notes

You must log in before being able to contribute a note or feedback.