Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../public_h.../wp-inclu...
File: class-wp-query.php
if ( '' != $qv['tb'] ) {
[1000] Fix | Delete
$this->is_trackback = true;
[1001] Fix | Delete
}
[1002] Fix | Delete
[1003] Fix | Delete
if ( '' != $qv['paged'] && ( (int) $qv['paged'] > 1 ) ) {
[1004] Fix | Delete
$this->is_paged = true;
[1005] Fix | Delete
}
[1006] Fix | Delete
[1007] Fix | Delete
// If we're previewing inside the write screen.
[1008] Fix | Delete
if ( '' != $qv['preview'] ) {
[1009] Fix | Delete
$this->is_preview = true;
[1010] Fix | Delete
}
[1011] Fix | Delete
[1012] Fix | Delete
if ( is_admin() ) {
[1013] Fix | Delete
$this->is_admin = true;
[1014] Fix | Delete
}
[1015] Fix | Delete
[1016] Fix | Delete
if ( str_contains( $qv['feed'], 'comments-' ) ) {
[1017] Fix | Delete
$qv['feed'] = str_replace( 'comments-', '', $qv['feed'] );
[1018] Fix | Delete
$qv['withcomments'] = 1;
[1019] Fix | Delete
}
[1020] Fix | Delete
[1021] Fix | Delete
$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
[1022] Fix | Delete
[1023] Fix | Delete
if ( $this->is_feed && ( ! empty( $qv['withcomments'] ) || ( empty( $qv['withoutcomments'] ) && $this->is_singular ) ) ) {
[1024] Fix | Delete
$this->is_comment_feed = true;
[1025] Fix | Delete
}
[1026] Fix | Delete
[1027] Fix | Delete
if ( ! ( $this->is_singular || $this->is_archive || $this->is_search || $this->is_feed
[1028] Fix | Delete
|| ( wp_is_serving_rest_request() && $this->is_main_query() )
[1029] Fix | Delete
|| $this->is_trackback || $this->is_404 || $this->is_admin || $this->is_robots || $this->is_favicon ) ) {
[1030] Fix | Delete
$this->is_home = true;
[1031] Fix | Delete
}
[1032] Fix | Delete
[1033] Fix | Delete
// Correct `is_*` for 'page_on_front' and 'page_for_posts'.
[1034] Fix | Delete
if ( $this->is_home && 'page' === get_option( 'show_on_front' ) && get_option( 'page_on_front' ) ) {
[1035] Fix | Delete
$_query = wp_parse_args( $this->query );
[1036] Fix | Delete
// 'pagename' can be set and empty depending on matched rewrite rules. Ignore an empty 'pagename'.
[1037] Fix | Delete
if ( isset( $_query['pagename'] ) && '' === $_query['pagename'] ) {
[1038] Fix | Delete
unset( $_query['pagename'] );
[1039] Fix | Delete
}
[1040] Fix | Delete
[1041] Fix | Delete
unset( $_query['embed'] );
[1042] Fix | Delete
[1043] Fix | Delete
if ( empty( $_query ) || ! array_diff( array_keys( $_query ), array( 'preview', 'page', 'paged', 'cpage' ) ) ) {
[1044] Fix | Delete
$this->is_page = true;
[1045] Fix | Delete
$this->is_home = false;
[1046] Fix | Delete
$qv['page_id'] = get_option( 'page_on_front' );
[1047] Fix | Delete
// Correct <!--nextpage--> for 'page_on_front'.
[1048] Fix | Delete
if ( ! empty( $qv['paged'] ) ) {
[1049] Fix | Delete
$qv['page'] = $qv['paged'];
[1050] Fix | Delete
unset( $qv['paged'] );
[1051] Fix | Delete
}
[1052] Fix | Delete
}
[1053] Fix | Delete
}
[1054] Fix | Delete
[1055] Fix | Delete
if ( '' !== $qv['pagename'] ) {
[1056] Fix | Delete
$this->queried_object = get_page_by_path( $qv['pagename'] );
[1057] Fix | Delete
[1058] Fix | Delete
if ( $this->queried_object && 'attachment' === $this->queried_object->post_type ) {
[1059] Fix | Delete
if ( preg_match( '/^[^%]*%(?:postname)%/', get_option( 'permalink_structure' ) ) ) {
[1060] Fix | Delete
// See if we also have a post with the same slug.
[1061] Fix | Delete
$post = get_page_by_path( $qv['pagename'], OBJECT, 'post' );
[1062] Fix | Delete
if ( $post ) {
[1063] Fix | Delete
$this->queried_object = $post;
[1064] Fix | Delete
$this->is_page = false;
[1065] Fix | Delete
$this->is_single = true;
[1066] Fix | Delete
}
[1067] Fix | Delete
}
[1068] Fix | Delete
}
[1069] Fix | Delete
[1070] Fix | Delete
if ( ! empty( $this->queried_object ) ) {
[1071] Fix | Delete
$this->queried_object_id = (int) $this->queried_object->ID;
[1072] Fix | Delete
} else {
[1073] Fix | Delete
unset( $this->queried_object );
[1074] Fix | Delete
}
[1075] Fix | Delete
[1076] Fix | Delete
if ( 'page' === get_option( 'show_on_front' ) && isset( $this->queried_object_id ) && get_option( 'page_for_posts' ) == $this->queried_object_id ) {
[1077] Fix | Delete
$this->is_page = false;
[1078] Fix | Delete
$this->is_home = true;
[1079] Fix | Delete
$this->is_posts_page = true;
[1080] Fix | Delete
}
[1081] Fix | Delete
[1082] Fix | Delete
if ( isset( $this->queried_object_id ) && get_option( 'wp_page_for_privacy_policy' ) == $this->queried_object_id ) {
[1083] Fix | Delete
$this->is_privacy_policy = true;
[1084] Fix | Delete
}
[1085] Fix | Delete
}
[1086] Fix | Delete
[1087] Fix | Delete
if ( $qv['page_id'] ) {
[1088] Fix | Delete
if ( 'page' === get_option( 'show_on_front' ) && get_option( 'page_for_posts' ) == $qv['page_id'] ) {
[1089] Fix | Delete
$this->is_page = false;
[1090] Fix | Delete
$this->is_home = true;
[1091] Fix | Delete
$this->is_posts_page = true;
[1092] Fix | Delete
}
[1093] Fix | Delete
[1094] Fix | Delete
if ( get_option( 'wp_page_for_privacy_policy' ) == $qv['page_id'] ) {
[1095] Fix | Delete
$this->is_privacy_policy = true;
[1096] Fix | Delete
}
[1097] Fix | Delete
}
[1098] Fix | Delete
[1099] Fix | Delete
if ( ! empty( $qv['post_type'] ) ) {
[1100] Fix | Delete
if ( is_array( $qv['post_type'] ) ) {
[1101] Fix | Delete
$qv['post_type'] = array_map( 'sanitize_key', $qv['post_type'] );
[1102] Fix | Delete
} else {
[1103] Fix | Delete
$qv['post_type'] = sanitize_key( $qv['post_type'] );
[1104] Fix | Delete
}
[1105] Fix | Delete
}
[1106] Fix | Delete
[1107] Fix | Delete
if ( ! empty( $qv['post_status'] ) ) {
[1108] Fix | Delete
if ( is_array( $qv['post_status'] ) ) {
[1109] Fix | Delete
$qv['post_status'] = array_map( 'sanitize_key', $qv['post_status'] );
[1110] Fix | Delete
} else {
[1111] Fix | Delete
$qv['post_status'] = preg_replace( '|[^a-z0-9_,-]|', '', $qv['post_status'] );
[1112] Fix | Delete
}
[1113] Fix | Delete
}
[1114] Fix | Delete
[1115] Fix | Delete
if ( $this->is_posts_page && ( ! isset( $qv['withcomments'] ) || ! $qv['withcomments'] ) ) {
[1116] Fix | Delete
$this->is_comment_feed = false;
[1117] Fix | Delete
}
[1118] Fix | Delete
[1119] Fix | Delete
$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
[1120] Fix | Delete
// Done correcting `is_*` for 'page_on_front' and 'page_for_posts'.
[1121] Fix | Delete
[1122] Fix | Delete
if ( '404' == $qv['error'] ) {
[1123] Fix | Delete
$this->set_404();
[1124] Fix | Delete
}
[1125] Fix | Delete
[1126] Fix | Delete
$this->is_embed = $this->is_embed && ( $this->is_singular || $this->is_404 );
[1127] Fix | Delete
[1128] Fix | Delete
$this->query_vars_hash = md5( serialize( $this->query_vars ) );
[1129] Fix | Delete
$this->query_vars_changed = false;
[1130] Fix | Delete
[1131] Fix | Delete
/**
[1132] Fix | Delete
* Fires after the main query vars have been parsed.
[1133] Fix | Delete
*
[1134] Fix | Delete
* @since 1.5.0
[1135] Fix | Delete
*
[1136] Fix | Delete
* @param WP_Query $query The WP_Query instance (passed by reference).
[1137] Fix | Delete
*/
[1138] Fix | Delete
do_action_ref_array( 'parse_query', array( &$this ) );
[1139] Fix | Delete
}
[1140] Fix | Delete
[1141] Fix | Delete
/**
[1142] Fix | Delete
* Parses various taxonomy related query vars.
[1143] Fix | Delete
*
[1144] Fix | Delete
* For BC, this method is not marked as protected. See [28987].
[1145] Fix | Delete
*
[1146] Fix | Delete
* @since 3.1.0
[1147] Fix | Delete
*
[1148] Fix | Delete
* @param array $q The query variables. Passed by reference.
[1149] Fix | Delete
*/
[1150] Fix | Delete
public function parse_tax_query( &$q ) {
[1151] Fix | Delete
if ( ! empty( $q['tax_query'] ) && is_array( $q['tax_query'] ) ) {
[1152] Fix | Delete
$tax_query = $q['tax_query'];
[1153] Fix | Delete
} else {
[1154] Fix | Delete
$tax_query = array();
[1155] Fix | Delete
}
[1156] Fix | Delete
[1157] Fix | Delete
if ( ! empty( $q['taxonomy'] ) && ! empty( $q['term'] ) ) {
[1158] Fix | Delete
$tax_query[] = array(
[1159] Fix | Delete
'taxonomy' => $q['taxonomy'],
[1160] Fix | Delete
'terms' => array( $q['term'] ),
[1161] Fix | Delete
'field' => 'slug',
[1162] Fix | Delete
);
[1163] Fix | Delete
}
[1164] Fix | Delete
[1165] Fix | Delete
foreach ( get_taxonomies( array(), 'objects' ) as $taxonomy => $t ) {
[1166] Fix | Delete
if ( 'post_tag' === $taxonomy ) {
[1167] Fix | Delete
continue; // Handled further down in the $q['tag'] block.
[1168] Fix | Delete
}
[1169] Fix | Delete
[1170] Fix | Delete
if ( $t->query_var && ! empty( $q[ $t->query_var ] ) ) {
[1171] Fix | Delete
$tax_query_defaults = array(
[1172] Fix | Delete
'taxonomy' => $taxonomy,
[1173] Fix | Delete
'field' => 'slug',
[1174] Fix | Delete
);
[1175] Fix | Delete
[1176] Fix | Delete
if ( ! empty( $t->rewrite['hierarchical'] ) ) {
[1177] Fix | Delete
$q[ $t->query_var ] = wp_basename( $q[ $t->query_var ] );
[1178] Fix | Delete
}
[1179] Fix | Delete
[1180] Fix | Delete
$term = $q[ $t->query_var ];
[1181] Fix | Delete
[1182] Fix | Delete
if ( is_array( $term ) ) {
[1183] Fix | Delete
$term = implode( ',', $term );
[1184] Fix | Delete
}
[1185] Fix | Delete
[1186] Fix | Delete
if ( str_contains( $term, '+' ) ) {
[1187] Fix | Delete
$terms = preg_split( '/[+]+/', $term );
[1188] Fix | Delete
foreach ( $terms as $term ) {
[1189] Fix | Delete
$tax_query[] = array_merge(
[1190] Fix | Delete
$tax_query_defaults,
[1191] Fix | Delete
array(
[1192] Fix | Delete
'terms' => array( $term ),
[1193] Fix | Delete
)
[1194] Fix | Delete
);
[1195] Fix | Delete
}
[1196] Fix | Delete
} else {
[1197] Fix | Delete
$tax_query[] = array_merge(
[1198] Fix | Delete
$tax_query_defaults,
[1199] Fix | Delete
array(
[1200] Fix | Delete
'terms' => preg_split( '/[,]+/', $term ),
[1201] Fix | Delete
)
[1202] Fix | Delete
);
[1203] Fix | Delete
}
[1204] Fix | Delete
}
[1205] Fix | Delete
}
[1206] Fix | Delete
[1207] Fix | Delete
// If query string 'cat' is an array, implode it.
[1208] Fix | Delete
if ( is_array( $q['cat'] ) ) {
[1209] Fix | Delete
$q['cat'] = implode( ',', $q['cat'] );
[1210] Fix | Delete
}
[1211] Fix | Delete
[1212] Fix | Delete
// Category stuff.
[1213] Fix | Delete
[1214] Fix | Delete
if ( ! empty( $q['cat'] ) && ! $this->is_singular ) {
[1215] Fix | Delete
$cat_in = array();
[1216] Fix | Delete
$cat_not_in = array();
[1217] Fix | Delete
[1218] Fix | Delete
$cat_array = preg_split( '/[,\s]+/', urldecode( $q['cat'] ) );
[1219] Fix | Delete
$cat_array = array_map( 'intval', $cat_array );
[1220] Fix | Delete
$q['cat'] = implode( ',', $cat_array );
[1221] Fix | Delete
[1222] Fix | Delete
foreach ( $cat_array as $cat ) {
[1223] Fix | Delete
if ( $cat > 0 ) {
[1224] Fix | Delete
$cat_in[] = $cat;
[1225] Fix | Delete
} elseif ( $cat < 0 ) {
[1226] Fix | Delete
$cat_not_in[] = abs( $cat );
[1227] Fix | Delete
}
[1228] Fix | Delete
}
[1229] Fix | Delete
[1230] Fix | Delete
if ( ! empty( $cat_in ) ) {
[1231] Fix | Delete
$tax_query[] = array(
[1232] Fix | Delete
'taxonomy' => 'category',
[1233] Fix | Delete
'terms' => $cat_in,
[1234] Fix | Delete
'field' => 'term_id',
[1235] Fix | Delete
'include_children' => true,
[1236] Fix | Delete
);
[1237] Fix | Delete
}
[1238] Fix | Delete
[1239] Fix | Delete
if ( ! empty( $cat_not_in ) ) {
[1240] Fix | Delete
$tax_query[] = array(
[1241] Fix | Delete
'taxonomy' => 'category',
[1242] Fix | Delete
'terms' => $cat_not_in,
[1243] Fix | Delete
'field' => 'term_id',
[1244] Fix | Delete
'operator' => 'NOT IN',
[1245] Fix | Delete
'include_children' => true,
[1246] Fix | Delete
);
[1247] Fix | Delete
}
[1248] Fix | Delete
unset( $cat_array, $cat_in, $cat_not_in );
[1249] Fix | Delete
}
[1250] Fix | Delete
[1251] Fix | Delete
if ( ! empty( $q['category__and'] ) && 1 === count( (array) $q['category__and'] ) ) {
[1252] Fix | Delete
$q['category__and'] = (array) $q['category__and'];
[1253] Fix | Delete
if ( ! isset( $q['category__in'] ) ) {
[1254] Fix | Delete
$q['category__in'] = array();
[1255] Fix | Delete
}
[1256] Fix | Delete
$q['category__in'][] = absint( reset( $q['category__and'] ) );
[1257] Fix | Delete
unset( $q['category__and'] );
[1258] Fix | Delete
}
[1259] Fix | Delete
[1260] Fix | Delete
if ( ! empty( $q['category__in'] ) ) {
[1261] Fix | Delete
$q['category__in'] = array_map( 'absint', array_unique( (array) $q['category__in'] ) );
[1262] Fix | Delete
$tax_query[] = array(
[1263] Fix | Delete
'taxonomy' => 'category',
[1264] Fix | Delete
'terms' => $q['category__in'],
[1265] Fix | Delete
'field' => 'term_id',
[1266] Fix | Delete
'include_children' => false,
[1267] Fix | Delete
);
[1268] Fix | Delete
}
[1269] Fix | Delete
[1270] Fix | Delete
if ( ! empty( $q['category__not_in'] ) ) {
[1271] Fix | Delete
$q['category__not_in'] = array_map( 'absint', array_unique( (array) $q['category__not_in'] ) );
[1272] Fix | Delete
$tax_query[] = array(
[1273] Fix | Delete
'taxonomy' => 'category',
[1274] Fix | Delete
'terms' => $q['category__not_in'],
[1275] Fix | Delete
'operator' => 'NOT IN',
[1276] Fix | Delete
'include_children' => false,
[1277] Fix | Delete
);
[1278] Fix | Delete
}
[1279] Fix | Delete
[1280] Fix | Delete
if ( ! empty( $q['category__and'] ) ) {
[1281] Fix | Delete
$q['category__and'] = array_map( 'absint', array_unique( (array) $q['category__and'] ) );
[1282] Fix | Delete
$tax_query[] = array(
[1283] Fix | Delete
'taxonomy' => 'category',
[1284] Fix | Delete
'terms' => $q['category__and'],
[1285] Fix | Delete
'field' => 'term_id',
[1286] Fix | Delete
'operator' => 'AND',
[1287] Fix | Delete
'include_children' => false,
[1288] Fix | Delete
);
[1289] Fix | Delete
}
[1290] Fix | Delete
[1291] Fix | Delete
// If query string 'tag' is array, implode it.
[1292] Fix | Delete
if ( is_array( $q['tag'] ) ) {
[1293] Fix | Delete
$q['tag'] = implode( ',', $q['tag'] );
[1294] Fix | Delete
}
[1295] Fix | Delete
[1296] Fix | Delete
// Tag stuff.
[1297] Fix | Delete
[1298] Fix | Delete
if ( '' !== $q['tag'] && ! $this->is_singular && $this->query_vars_changed ) {
[1299] Fix | Delete
if ( str_contains( $q['tag'], ',' ) ) {
[1300] Fix | Delete
$tags = preg_split( '/[,\r\n\t ]+/', $q['tag'] );
[1301] Fix | Delete
foreach ( (array) $tags as $tag ) {
[1302] Fix | Delete
$tag = sanitize_term_field( 'slug', $tag, 0, 'post_tag', 'db' );
[1303] Fix | Delete
$q['tag_slug__in'][] = $tag;
[1304] Fix | Delete
}
[1305] Fix | Delete
} elseif ( preg_match( '/[+\r\n\t ]+/', $q['tag'] ) || ! empty( $q['cat'] ) ) {
[1306] Fix | Delete
$tags = preg_split( '/[+\r\n\t ]+/', $q['tag'] );
[1307] Fix | Delete
foreach ( (array) $tags as $tag ) {
[1308] Fix | Delete
$tag = sanitize_term_field( 'slug', $tag, 0, 'post_tag', 'db' );
[1309] Fix | Delete
$q['tag_slug__and'][] = $tag;
[1310] Fix | Delete
}
[1311] Fix | Delete
} else {
[1312] Fix | Delete
$q['tag'] = sanitize_term_field( 'slug', $q['tag'], 0, 'post_tag', 'db' );
[1313] Fix | Delete
$q['tag_slug__in'][] = $q['tag'];
[1314] Fix | Delete
}
[1315] Fix | Delete
}
[1316] Fix | Delete
[1317] Fix | Delete
if ( ! empty( $q['tag_id'] ) ) {
[1318] Fix | Delete
$q['tag_id'] = absint( $q['tag_id'] );
[1319] Fix | Delete
$tax_query[] = array(
[1320] Fix | Delete
'taxonomy' => 'post_tag',
[1321] Fix | Delete
'terms' => $q['tag_id'],
[1322] Fix | Delete
);
[1323] Fix | Delete
}
[1324] Fix | Delete
[1325] Fix | Delete
if ( ! empty( $q['tag__in'] ) ) {
[1326] Fix | Delete
$q['tag__in'] = array_map( 'absint', array_unique( (array) $q['tag__in'] ) );
[1327] Fix | Delete
$tax_query[] = array(
[1328] Fix | Delete
'taxonomy' => 'post_tag',
[1329] Fix | Delete
'terms' => $q['tag__in'],
[1330] Fix | Delete
);
[1331] Fix | Delete
}
[1332] Fix | Delete
[1333] Fix | Delete
if ( ! empty( $q['tag__not_in'] ) ) {
[1334] Fix | Delete
$q['tag__not_in'] = array_map( 'absint', array_unique( (array) $q['tag__not_in'] ) );
[1335] Fix | Delete
$tax_query[] = array(
[1336] Fix | Delete
'taxonomy' => 'post_tag',
[1337] Fix | Delete
'terms' => $q['tag__not_in'],
[1338] Fix | Delete
'operator' => 'NOT IN',
[1339] Fix | Delete
);
[1340] Fix | Delete
}
[1341] Fix | Delete
[1342] Fix | Delete
if ( ! empty( $q['tag__and'] ) ) {
[1343] Fix | Delete
$q['tag__and'] = array_map( 'absint', array_unique( (array) $q['tag__and'] ) );
[1344] Fix | Delete
$tax_query[] = array(
[1345] Fix | Delete
'taxonomy' => 'post_tag',
[1346] Fix | Delete
'terms' => $q['tag__and'],
[1347] Fix | Delete
'operator' => 'AND',
[1348] Fix | Delete
);
[1349] Fix | Delete
}
[1350] Fix | Delete
[1351] Fix | Delete
if ( ! empty( $q['tag_slug__in'] ) ) {
[1352] Fix | Delete
$q['tag_slug__in'] = array_map( 'sanitize_title_for_query', array_unique( (array) $q['tag_slug__in'] ) );
[1353] Fix | Delete
$tax_query[] = array(
[1354] Fix | Delete
'taxonomy' => 'post_tag',
[1355] Fix | Delete
'terms' => $q['tag_slug__in'],
[1356] Fix | Delete
'field' => 'slug',
[1357] Fix | Delete
);
[1358] Fix | Delete
}
[1359] Fix | Delete
[1360] Fix | Delete
if ( ! empty( $q['tag_slug__and'] ) ) {
[1361] Fix | Delete
$q['tag_slug__and'] = array_map( 'sanitize_title_for_query', array_unique( (array) $q['tag_slug__and'] ) );
[1362] Fix | Delete
$tax_query[] = array(
[1363] Fix | Delete
'taxonomy' => 'post_tag',
[1364] Fix | Delete
'terms' => $q['tag_slug__and'],
[1365] Fix | Delete
'field' => 'slug',
[1366] Fix | Delete
'operator' => 'AND',
[1367] Fix | Delete
);
[1368] Fix | Delete
}
[1369] Fix | Delete
[1370] Fix | Delete
$this->tax_query = new WP_Tax_Query( $tax_query );
[1371] Fix | Delete
[1372] Fix | Delete
/**
[1373] Fix | Delete
* Fires after taxonomy-related query vars have been parsed.
[1374] Fix | Delete
*
[1375] Fix | Delete
* @since 3.7.0
[1376] Fix | Delete
*
[1377] Fix | Delete
* @param WP_Query $query The WP_Query instance.
[1378] Fix | Delete
*/
[1379] Fix | Delete
do_action( 'parse_tax_query', $this );
[1380] Fix | Delete
}
[1381] Fix | Delete
[1382] Fix | Delete
/**
[1383] Fix | Delete
* Generates SQL for the WHERE clause based on passed search terms.
[1384] Fix | Delete
*
[1385] Fix | Delete
* @since 3.7.0
[1386] Fix | Delete
*
[1387] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[1388] Fix | Delete
*
[1389] Fix | Delete
* @param array $q Query variables.
[1390] Fix | Delete
* @return string WHERE clause.
[1391] Fix | Delete
*/
[1392] Fix | Delete
protected function parse_search( &$q ) {
[1393] Fix | Delete
global $wpdb;
[1394] Fix | Delete
[1395] Fix | Delete
$search = '';
[1396] Fix | Delete
[1397] Fix | Delete
// Added slashes screw with quote grouping when done early, so done later.
[1398] Fix | Delete
$q['s'] = stripslashes( $q['s'] );
[1399] Fix | Delete
if ( empty( $_GET['s'] ) && $this->is_main_query() ) {
[1400] Fix | Delete
$q['s'] = urldecode( $q['s'] );
[1401] Fix | Delete
}
[1402] Fix | Delete
// There are no line breaks in <input /> fields.
[1403] Fix | Delete
$q['s'] = str_replace( array( "\r", "\n" ), '', $q['s'] );
[1404] Fix | Delete
$q['search_terms_count'] = 1;
[1405] Fix | Delete
if ( ! empty( $q['sentence'] ) ) {
[1406] Fix | Delete
$q['search_terms'] = array( $q['s'] );
[1407] Fix | Delete
} else {
[1408] Fix | Delete
if ( preg_match_all( '/".*?("|$)|((?<=[\t ",+])|^)[^\t ",+]+/', $q['s'], $matches ) ) {
[1409] Fix | Delete
$q['search_terms_count'] = count( $matches[0] );
[1410] Fix | Delete
$q['search_terms'] = $this->parse_search_terms( $matches[0] );
[1411] Fix | Delete
// If the search string has only short terms or stopwords, or is 10+ terms long, match it as sentence.
[1412] Fix | Delete
if ( empty( $q['search_terms'] ) || count( $q['search_terms'] ) > 9 ) {
[1413] Fix | Delete
$q['search_terms'] = array( $q['s'] );
[1414] Fix | Delete
}
[1415] Fix | Delete
} else {
[1416] Fix | Delete
$q['search_terms'] = array( $q['s'] );
[1417] Fix | Delete
}
[1418] Fix | Delete
}
[1419] Fix | Delete
[1420] Fix | Delete
$n = ! empty( $q['exact'] ) ? '' : '%';
[1421] Fix | Delete
$searchand = '';
[1422] Fix | Delete
$q['search_orderby_title'] = array();
[1423] Fix | Delete
[1424] Fix | Delete
$default_search_columns = array( 'post_title', 'post_excerpt', 'post_content' );
[1425] Fix | Delete
$search_columns = ! empty( $q['search_columns'] ) ? $q['search_columns'] : $default_search_columns;
[1426] Fix | Delete
if ( ! is_array( $search_columns ) ) {
[1427] Fix | Delete
$search_columns = array( $search_columns );
[1428] Fix | Delete
}
[1429] Fix | Delete
[1430] Fix | Delete
/**
[1431] Fix | Delete
* Filters the columns to search in a WP_Query search.
[1432] Fix | Delete
*
[1433] Fix | Delete
* The supported columns are `post_title`, `post_excerpt` and `post_content`.
[1434] Fix | Delete
* They are all included by default.
[1435] Fix | Delete
*
[1436] Fix | Delete
* @since 6.2.0
[1437] Fix | Delete
*
[1438] Fix | Delete
* @param string[] $search_columns Array of column names to be searched.
[1439] Fix | Delete
* @param string $search Text being searched.
[1440] Fix | Delete
* @param WP_Query $query The current WP_Query instance.
[1441] Fix | Delete
*/
[1442] Fix | Delete
$search_columns = (array) apply_filters( 'post_search_columns', $search_columns, $q['s'], $this );
[1443] Fix | Delete
[1444] Fix | Delete
// Use only supported search columns.
[1445] Fix | Delete
$search_columns = array_intersect( $search_columns, $default_search_columns );
[1446] Fix | Delete
if ( empty( $search_columns ) ) {
[1447] Fix | Delete
$search_columns = $default_search_columns;
[1448] Fix | Delete
}
[1449] Fix | Delete
[1450] Fix | Delete
/**
[1451] Fix | Delete
* Filters the prefix that indicates that a search term should be excluded from results.
[1452] Fix | Delete
*
[1453] Fix | Delete
* @since 4.7.0
[1454] Fix | Delete
*
[1455] Fix | Delete
* @param string $exclusion_prefix The prefix. Default '-'. Returning
[1456] Fix | Delete
* an empty value disables exclusions.
[1457] Fix | Delete
*/
[1458] Fix | Delete
$exclusion_prefix = apply_filters( 'wp_query_search_exclusion_prefix', '-' );
[1459] Fix | Delete
[1460] Fix | Delete
foreach ( $q['search_terms'] as $term ) {
[1461] Fix | Delete
// If there is an $exclusion_prefix, terms prefixed with it should be excluded.
[1462] Fix | Delete
$exclude = $exclusion_prefix && str_starts_with( $term, $exclusion_prefix );
[1463] Fix | Delete
if ( $exclude ) {
[1464] Fix | Delete
$like_op = 'NOT LIKE';
[1465] Fix | Delete
$andor_op = 'AND';
[1466] Fix | Delete
$term = substr( $term, 1 );
[1467] Fix | Delete
} else {
[1468] Fix | Delete
$like_op = 'LIKE';
[1469] Fix | Delete
$andor_op = 'OR';
[1470] Fix | Delete
}
[1471] Fix | Delete
[1472] Fix | Delete
if ( $n && ! $exclude ) {
[1473] Fix | Delete
$like = '%' . $wpdb->esc_like( $term ) . '%';
[1474] Fix | Delete
$q['search_orderby_title'][] = $wpdb->prepare( "{$wpdb->posts}.post_title LIKE %s", $like );
[1475] Fix | Delete
}
[1476] Fix | Delete
[1477] Fix | Delete
$like = $n . $wpdb->esc_like( $term ) . $n;
[1478] Fix | Delete
[1479] Fix | Delete
$search_columns_parts = array();
[1480] Fix | Delete
foreach ( $search_columns as $search_column ) {
[1481] Fix | Delete
$search_columns_parts[ $search_column ] = $wpdb->prepare( "({$wpdb->posts}.$search_column $like_op %s)", $like );
[1482] Fix | Delete
}
[1483] Fix | Delete
[1484] Fix | Delete
if ( ! empty( $this->allow_query_attachment_by_filename ) ) {
[1485] Fix | Delete
$search_columns_parts['attachment'] = $wpdb->prepare( "(sq1.meta_value $like_op %s)", $like );
[1486] Fix | Delete
}
[1487] Fix | Delete
[1488] Fix | Delete
$search .= "$searchand(" . implode( " $andor_op ", $search_columns_parts ) . ')';
[1489] Fix | Delete
[1490] Fix | Delete
$searchand = ' AND ';
[1491] Fix | Delete
}
[1492] Fix | Delete
[1493] Fix | Delete
if ( ! empty( $search ) ) {
[1494] Fix | Delete
$search = " AND ({$search}) ";
[1495] Fix | Delete
if ( ! is_user_logged_in() ) {
[1496] Fix | Delete
$search .= " AND ({$wpdb->posts}.post_password = '') ";
[1497] Fix | Delete
}
[1498] Fix | Delete
}
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function