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.../httpdocs/clone/wp-conte.../plugins/advanced.../classes
File: display-conditions.php
} elseif ( isset( $query['is_singular'] ) && $query['is_singular'] && ! self::can_display_ids( $options['value'], $term_ids, $operator )
[1000] Fix | Delete
) {
[1001] Fix | Delete
return false;
[1002] Fix | Delete
}
[1003] Fix | Delete
[1004] Fix | Delete
return true;
[1005] Fix | Delete
}
[1006] Fix | Delete
[1007] Fix | Delete
/**
[1008] Fix | Delete
* Check taxonomy archive display condition in frontend
[1009] Fix | Delete
*
[1010] Fix | Delete
* @param array $options options of the condition.
[1011] Fix | Delete
* @param Advanced_Ads_Ad $ad ad.
[1012] Fix | Delete
*
[1013] Fix | Delete
* @return bool true if can be displayed
[1014] Fix | Delete
*/
[1015] Fix | Delete
public static function check_taxonomy_archive( $options, Advanced_Ads_Ad $ad ) {
[1016] Fix | Delete
[1017] Fix | Delete
if ( ! isset( $options['value'] ) ) {
[1018] Fix | Delete
return false;
[1019] Fix | Delete
}
[1020] Fix | Delete
[1021] Fix | Delete
if ( isset( $options['operator'] ) && 'is_not' === $options['operator'] ) {
[1022] Fix | Delete
$operator = 'is_not';
[1023] Fix | Delete
} else {
[1024] Fix | Delete
$operator = 'is';
[1025] Fix | Delete
}
[1026] Fix | Delete
[1027] Fix | Delete
$ad_options = $ad->options();
[1028] Fix | Delete
$query = $ad_options['wp_the_query'];
[1029] Fix | Delete
[1030] Fix | Delete
// return false if operator is "is", but important query vars are not given.
[1031] Fix | Delete
if ( 'is' === $operator && ( empty( $query['term_id'] ) || empty( $query['is_archive'] ) ) ) {
[1032] Fix | Delete
return false;
[1033] Fix | Delete
} elseif ( isset( $query['term_id'] ) && isset( $query['is_archive'] ) && $query['is_archive'] && ! self::can_display_ids( $query['term_id'], $options['value'], $operator )
[1034] Fix | Delete
) {
[1035] Fix | Delete
return false;
[1036] Fix | Delete
}
[1037] Fix | Delete
[1038] Fix | Delete
return true;
[1039] Fix | Delete
}
[1040] Fix | Delete
[1041] Fix | Delete
/**
[1042] Fix | Delete
* Check if a specific archive belongs to a taxonomy in general (not a specific term)
[1043] Fix | Delete
*
[1044] Fix | Delete
* @param array $options options of the condition.
[1045] Fix | Delete
* @param Advanced_Ads_Ad $ad ad.
[1046] Fix | Delete
*
[1047] Fix | Delete
* @return bool true if can be displayed
[1048] Fix | Delete
*/
[1049] Fix | Delete
public static function check_taxonomy( $options, Advanced_Ads_Ad $ad ) {
[1050] Fix | Delete
[1051] Fix | Delete
if ( ! isset( $options['value'] ) ) {
[1052] Fix | Delete
return false;
[1053] Fix | Delete
}
[1054] Fix | Delete
[1055] Fix | Delete
if ( isset( $options['operator'] ) && 'is_not' === $options['operator'] ) {
[1056] Fix | Delete
$operator = 'is_not';
[1057] Fix | Delete
} else {
[1058] Fix | Delete
$operator = 'is';
[1059] Fix | Delete
}
[1060] Fix | Delete
[1061] Fix | Delete
$ad_options = $ad->options();
[1062] Fix | Delete
$query = $ad_options['wp_the_query'];
[1063] Fix | Delete
[1064] Fix | Delete
// return false if operator is "is", but important query vars are not given.
[1065] Fix | Delete
if ( 'is' === $operator && ( empty( $query['taxonomy'] ) || empty( $query['is_archive'] ) ) ) {
[1066] Fix | Delete
return false;
[1067] Fix | Delete
} elseif ( isset( $query['taxonomy'] ) && isset( $query['is_archive'] ) && $query['is_archive'] && ! self::can_display_ids( $query['taxonomy'], $options['value'], $operator )
[1068] Fix | Delete
) {
[1069] Fix | Delete
return false;
[1070] Fix | Delete
}
[1071] Fix | Delete
[1072] Fix | Delete
return true;
[1073] Fix | Delete
}
[1074] Fix | Delete
[1075] Fix | Delete
/**
[1076] Fix | Delete
* Check post ids display condition in frontend
[1077] Fix | Delete
*
[1078] Fix | Delete
* @param array $options options of the condition.
[1079] Fix | Delete
* @param Advanced_Ads_Ad $ad ad.
[1080] Fix | Delete
*
[1081] Fix | Delete
* @return bool true if can be displayed
[1082] Fix | Delete
*/
[1083] Fix | Delete
public static function check_post_ids( $options, Advanced_Ads_Ad $ad ) {
[1084] Fix | Delete
[1085] Fix | Delete
if ( isset( $options['operator'] ) && 'is_not' === $options['operator'] ) {
[1086] Fix | Delete
$operator = 'is_not';
[1087] Fix | Delete
} else {
[1088] Fix | Delete
$operator = 'is';
[1089] Fix | Delete
}
[1090] Fix | Delete
[1091] Fix | Delete
$ad_options = $ad->options();
[1092] Fix | Delete
$query = $ad_options['wp_the_query'];
[1093] Fix | Delete
$post_id = isset( $ad_options['post']['id'] ) ? $ad_options['post']['id'] : null;
[1094] Fix | Delete
[1095] Fix | Delete
// fixes page id on BuddyPress pages.
[1096] Fix | Delete
if ( 0 === $post_id && class_exists( 'BuddyPress' ) && function_exists( 'bp_current_component' ) ) {
[1097] Fix | Delete
$component = bp_current_component();
[1098] Fix | Delete
$bp_pages = get_option( 'bp-pages' );
[1099] Fix | Delete
if ( isset( $bp_pages[ $component ] ) ) {
[1100] Fix | Delete
$post_id = $bp_pages[ $component ];
[1101] Fix | Delete
}
[1102] Fix | Delete
}
[1103] Fix | Delete
[1104] Fix | Delete
/**
[1105] Fix | Delete
* WooCommerce Store page fix
[1106] Fix | Delete
* since WooCommerce changes the post ID of the static page selected to be the product overview page, we need to get the original page id from the WC options
[1107] Fix | Delete
*/
[1108] Fix | Delete
if ( function_exists( 'is_shop' ) && is_shop() && isset( $options['value'] ) && is_array( $options['value'] ) ) {
[1109] Fix | Delete
$post_id = get_option( 'woocommerce_shop_page_id' );
[1110] Fix | Delete
[1111] Fix | Delete
return self::can_display_ids( $post_id, $options['value'], $operator );
[1112] Fix | Delete
}
[1113] Fix | Delete
[1114] Fix | Delete
if ( empty( $ad_options['wp_the_query']['is_singular'] ) ) {
[1115] Fix | Delete
if ( 'is_not' === $operator ) {
[1116] Fix | Delete
return true;
[1117] Fix | Delete
} else {
[1118] Fix | Delete
return false;
[1119] Fix | Delete
}
[1120] Fix | Delete
}
[1121] Fix | Delete
[1122] Fix | Delete
if ( ! isset( $options['value'] ) || ! is_array( $options['value'] ) || ! $post_id ) {
[1123] Fix | Delete
return true;
[1124] Fix | Delete
}
[1125] Fix | Delete
[1126] Fix | Delete
return self::can_display_ids( $post_id, $options['value'], $operator );
[1127] Fix | Delete
}
[1128] Fix | Delete
[1129] Fix | Delete
/**
[1130] Fix | Delete
* Check general display conditions in frontend
[1131] Fix | Delete
*
[1132] Fix | Delete
* @param array $options options of the condition.
[1133] Fix | Delete
* @param Advanced_Ads_Ad $ad ad.
[1134] Fix | Delete
*
[1135] Fix | Delete
* @return bool true if can be displayed
[1136] Fix | Delete
*/
[1137] Fix | Delete
public static function check_general( $options, Advanced_Ads_Ad $ad ) {
[1138] Fix | Delete
[1139] Fix | Delete
// display by default.
[1140] Fix | Delete
if ( ! isset( $options['value'] ) || ! is_array( $options['value'] ) || ! count( $options['value'] ) ) {
[1141] Fix | Delete
return true;
[1142] Fix | Delete
}
[1143] Fix | Delete
[1144] Fix | Delete
// check general conditions added by other add-ons.
[1145] Fix | Delete
$result = apply_filters( 'advanced-ads-display-conditions-check-general', null, $options['value'] );
[1146] Fix | Delete
if ( null !== ( $result ) ) {
[1147] Fix | Delete
return $result;
[1148] Fix | Delete
}
[1149] Fix | Delete
[1150] Fix | Delete
// skip checks, if general conditions are unchanged.
[1151] Fix | Delete
if ( self::$default_general_keys === $options['value'] ) {
[1152] Fix | Delete
return true;
[1153] Fix | Delete
}
[1154] Fix | Delete
[1155] Fix | Delete
// get plugin options.
[1156] Fix | Delete
$ad_options = $ad->options();
[1157] Fix | Delete
$query = $ad_options['wp_the_query'];
[1158] Fix | Delete
[1159] Fix | Delete
// check main query.
[1160] Fix | Delete
if ( isset( $query['is_main_query'] ) && ! $query['is_main_query'] && ! in_array( 'is_main_query', $options['value'], true ) ) {
[1161] Fix | Delete
return false;
[1162] Fix | Delete
}
[1163] Fix | Delete
[1164] Fix | Delete
if ( isset( $query['is_rest_api'] ) && $query['is_rest_api'] && ! in_array( 'is_rest_api', $options['value'], true ) ) {
[1165] Fix | Delete
return false;
[1166] Fix | Delete
}
[1167] Fix | Delete
[1168] Fix | Delete
// check home page.
[1169] Fix | Delete
if (
[1170] Fix | Delete
( ( isset( $query['is_front_page'] ) && $query['is_front_page'] ) || ( isset( $query['is_home'] ) && $query['is_home'] ) )
[1171] Fix | Delete
&& in_array( 'is_front_page', $options['value'], true )
[1172] Fix | Delete
) {
[1173] Fix | Delete
return true;
[1174] Fix | Delete
} elseif ( isset( $query['is_front_page'] ) && $query['is_front_page'] && ( ! in_array( 'is_front_page', $options['value'], true ) ) ) {
[1175] Fix | Delete
return false;
[1176] Fix | Delete
}
[1177] Fix | Delete
[1178] Fix | Delete
// check common tests.
[1179] Fix | Delete
foreach ( self::$query_var_keys as $_type ) {
[1180] Fix | Delete
if ( 'is_main_query' !== $_type && isset( $query[ $_type ] ) && $query[ $_type ] &&
[1181] Fix | Delete
in_array( $_type, $options['value'], true ) ) {
[1182] Fix | Delete
return true;
[1183] Fix | Delete
}
[1184] Fix | Delete
}
[1185] Fix | Delete
[1186] Fix | Delete
return false;
[1187] Fix | Delete
}
[1188] Fix | Delete
[1189] Fix | Delete
/**
[1190] Fix | Delete
* Check 'content age' condition in frontend.
[1191] Fix | Delete
*
[1192] Fix | Delete
* @param array $options options of the condition.
[1193] Fix | Delete
* @param Advanced_Ads_Ad $ad ad.
[1194] Fix | Delete
*
[1195] Fix | Delete
* @return bool true if can be displayed
[1196] Fix | Delete
*/
[1197] Fix | Delete
public static function check_content_age( $options, Advanced_Ads_Ad $ad ) {
[1198] Fix | Delete
$post = get_post();
[1199] Fix | Delete
[1200] Fix | Delete
if ( ! $post
[1201] Fix | Delete
&& wp_doing_ajax()
[1202] Fix | Delete
&& isset( $_REQUEST['action'], $_REQUEST['theId'], $_REQUEST['isSingular'] )
[1203] Fix | Delete
&& sanitize_key( $_REQUEST['action'] ) === 'advads_ad_select'
[1204] Fix | Delete
&& ( $_REQUEST['isSingular'] )
[1205] Fix | Delete
) {
[1206] Fix | Delete
$post = get_post( (int) $_REQUEST['theId'] );
[1207] Fix | Delete
}
[1208] Fix | Delete
[1209] Fix | Delete
$operator = ( isset( $options['operator'] ) && 'younger_than' === $options['operator'] ) ? 'younger_than' : 'older_than';
[1210] Fix | Delete
$value = isset( $options['value'] ) ? $options['value'] : '';
[1211] Fix | Delete
[1212] Fix | Delete
if ( empty( $post->ID ) || empty( $value ) ) {
[1213] Fix | Delete
return true;
[1214] Fix | Delete
}
[1215] Fix | Delete
[1216] Fix | Delete
// get post publish date in unix timestamp.
[1217] Fix | Delete
$publish_time = get_the_time( 'U', $post->ID );
[1218] Fix | Delete
[1219] Fix | Delete
// get difference from now.
[1220] Fix | Delete
$diff_from_now = time() - $publish_time;
[1221] Fix | Delete
[1222] Fix | Delete
// check against entered age.
[1223] Fix | Delete
$value_in_seconds = DAY_IN_SECONDS * $value;
[1224] Fix | Delete
[1225] Fix | Delete
if ( 'younger_than' === $operator ) {
[1226] Fix | Delete
return $diff_from_now < $value_in_seconds;
[1227] Fix | Delete
} else {
[1228] Fix | Delete
return $diff_from_now > $value_in_seconds;
[1229] Fix | Delete
}
[1230] Fix | Delete
}
[1231] Fix | Delete
[1232] Fix | Delete
/**
[1233] Fix | Delete
* Helper function to check for in array values
[1234] Fix | Delete
*
[1235] Fix | Delete
* @param mixed $id scalar (key) or array of keys as needle.
[1236] Fix | Delete
* @param array $ids haystack.
[1237] Fix | Delete
*
[1238] Fix | Delete
* @return boolean void if either argument is empty
[1239] Fix | Delete
*/
[1240] Fix | Delete
public static function in_array( $id, $ids ) {
[1241] Fix | Delete
// empty?
[1242] Fix | Delete
if ( ! isset( $id ) || [] === $id ) {
[1243] Fix | Delete
return;
[1244] Fix | Delete
}
[1245] Fix | Delete
[1246] Fix | Delete
// invalid?
[1247] Fix | Delete
if ( ! is_array( $ids ) ) {
[1248] Fix | Delete
return;
[1249] Fix | Delete
}
[1250] Fix | Delete
[1251] Fix | Delete
return is_array( $id ) ? [] !== array_intersect( $id, $ids ) : in_array( $id, $ids );
[1252] Fix | Delete
}
[1253] Fix | Delete
[1254] Fix | Delete
/**
[1255] Fix | Delete
* Helper to compare ids.
[1256] Fix | Delete
*
[1257] Fix | Delete
* @param array $needle ids that should be searched for in haystack.
[1258] Fix | Delete
* @param array $haystack reference ids.
[1259] Fix | Delete
* @param string $operator whether it should be included or not.
[1260] Fix | Delete
*
[1261] Fix | Delete
* @return boolean
[1262] Fix | Delete
*/
[1263] Fix | Delete
public static function can_display_ids( $needle, $haystack, $operator = 'is' ) {
[1264] Fix | Delete
[1265] Fix | Delete
if ( 'is' === $operator && self::in_array( $needle, $haystack ) === false ) {
[1266] Fix | Delete
return false;
[1267] Fix | Delete
}
[1268] Fix | Delete
[1269] Fix | Delete
if ( 'is_not' === $operator && self::in_array( $needle, $haystack ) === true ) {
[1270] Fix | Delete
return false;
[1271] Fix | Delete
}
[1272] Fix | Delete
[1273] Fix | Delete
return true;
[1274] Fix | Delete
}
[1275] Fix | Delete
[1276] Fix | Delete
/**
[1277] Fix | Delete
* Check display conditions
[1278] Fix | Delete
*
[1279] Fix | Delete
* @param bool $can_display whether the current ad can be displayed based on the checks that ran by now.
[1280] Fix | Delete
* @param Advanced_Ads_Ad $ad ad object.
[1281] Fix | Delete
*
[1282] Fix | Delete
* @return bool $can_display true if can be displayed in frontend
[1283] Fix | Delete
* @since 1.1.0 moved here from can_display()
[1284] Fix | Delete
*
[1285] Fix | Delete
* @since 1.7.0 moved here from display-by-query module
[1286] Fix | Delete
*/
[1287] Fix | Delete
public function can_display( $can_display, $ad ) {
[1288] Fix | Delete
if ( ! $can_display ) {
[1289] Fix | Delete
return false;
[1290] Fix | Delete
}
[1291] Fix | Delete
[1292] Fix | Delete
$options = $ad->options();
[1293] Fix | Delete
if (
[1294] Fix | Delete
// test if anything is to be limited at all.
[1295] Fix | Delete
! isset( $options['conditions'] ) || ! is_array( $options['conditions'] )
[1296] Fix | Delete
// query arguments required.
[1297] Fix | Delete
|| ! isset( $options['wp_the_query'] )
[1298] Fix | Delete
) {
[1299] Fix | Delete
return true;
[1300] Fix | Delete
}
[1301] Fix | Delete
// get conditions with rebased index keys.
[1302] Fix | Delete
$conditions = array_values( $options['conditions'] );
[1303] Fix | Delete
$query = $options['wp_the_query'];
[1304] Fix | Delete
$post = isset( $options['post'] ) ? $options['post'] : null;
[1305] Fix | Delete
$last_result = false;
[1306] Fix | Delete
$length = count( $conditions );
[1307] Fix | Delete
[1308] Fix | Delete
for ( $i = 0; $i < $length; ++$i ) {
[1309] Fix | Delete
$_condition = current( $conditions );
[1310] Fix | Delete
$next = next( $conditions );
[1311] Fix | Delete
$next_key = key( $conditions );
[1312] Fix | Delete
[1313] Fix | Delete
/**
[1314] Fix | Delete
* Force next condition’s connector to OR if
[1315] Fix | Delete
* not set to OR already
[1316] Fix | Delete
* this condition and the next are from the same taxonomy
[1317] Fix | Delete
* the conditions don’t have the same condition type
[1318] Fix | Delete
* they are both set to SHOW
[1319] Fix | Delete
*/
[1320] Fix | Delete
$tax = ( isset( $_condition['type'] ) && isset( $this->conditions[ $_condition['type'] ]['taxonomy'] ) ) ? $this->conditions[ $_condition['type'] ]['taxonomy'] : false;
[1321] Fix | Delete
$next_tax = ( isset( $next['type'] ) && isset( $this->conditions[ $next['type'] ]['taxonomy'] ) ) ? $this->conditions[ $next['type'] ]['taxonomy'] : false;
[1322] Fix | Delete
if ( $tax && $next_tax && $next_key
[1323] Fix | Delete
&& $next_tax === $tax
[1324] Fix | Delete
&& ( ! isset( $next['connector'] ) || 'or' !== $next['connector'] )
[1325] Fix | Delete
&& 'is' === $_condition['operator'] && 'is' === $next['operator']
[1326] Fix | Delete
&& $_condition['type'] !== $next['type']
[1327] Fix | Delete
) {
[1328] Fix | Delete
$next['connector'] = 'or';
[1329] Fix | Delete
$conditions[ $next_key ]['connector'] = 'or';
[1330] Fix | Delete
}
[1331] Fix | Delete
[1332] Fix | Delete
// ignore OR if last result was true.
[1333] Fix | Delete
if ( $last_result && isset( $_condition['connector'] ) && 'or' === $_condition['connector'] ) {
[1334] Fix | Delete
continue;
[1335] Fix | Delete
}
[1336] Fix | Delete
[1337] Fix | Delete
$result = self::frontend_check( $_condition, $ad );
[1338] Fix | Delete
$last_result = $result;
[1339] Fix | Delete
if ( ! $result ) {
[1340] Fix | Delete
// return false only, if the next condition doesn’t have an OR operator.
[1341] Fix | Delete
if ( ! isset( $next['connector'] ) || 'or' !== $next['connector'] ) {
[1342] Fix | Delete
return false;
[1343] Fix | Delete
}
[1344] Fix | Delete
}
[1345] Fix | Delete
}
[1346] Fix | Delete
[1347] Fix | Delete
return true;
[1348] Fix | Delete
}
[1349] Fix | Delete
[1350] Fix | Delete
/**
[1351] Fix | Delete
* On demand provide current query arguments to ads.
[1352] Fix | Delete
*
[1353] Fix | Delete
* Existing arguments must not be overridden.
[1354] Fix | Delete
* Some arguments might be cachable.
[1355] Fix | Delete
*
[1356] Fix | Delete
* @param array $args arguments.
[1357] Fix | Delete
*
[1358] Fix | Delete
* @return array
[1359] Fix | Delete
*/
[1360] Fix | Delete
public function ad_select_args_callback( $args ) {
[1361] Fix | Delete
global $post, $wp_the_query, $wp_query, $numpages;
[1362] Fix | Delete
[1363] Fix | Delete
if ( $post instanceof WP_Post ) {
[1364] Fix | Delete
if ( ! isset( $args['post'] ) ) {
[1365] Fix | Delete
$args['post'] = [];
[1366] Fix | Delete
}
[1367] Fix | Delete
if ( ! isset( $args['post']['id'] ) ) {
[1368] Fix | Delete
[1369] Fix | Delete
// if currently on a single site, use the main query information just in case a custom query is broken.
[1370] Fix | Delete
if ( isset( $wp_the_query->post->ID ) && $wp_the_query->is_single() ) {
[1371] Fix | Delete
$args['post']['id'] = $wp_the_query->post->ID;
[1372] Fix | Delete
} else {
[1373] Fix | Delete
$args['post']['id'] = $post->ID;
[1374] Fix | Delete
}
[1375] Fix | Delete
}
[1376] Fix | Delete
if ( ! isset( $args['post']['author'] ) ) {
[1377] Fix | Delete
// if currently on a single site, use the main query information just in case a custom query is broken.
[1378] Fix | Delete
if ( isset( $wp_the_query->post->post_author ) && $wp_the_query->is_single() ) {
[1379] Fix | Delete
$args['post']['author'] = $wp_the_query->post->post_author;
[1380] Fix | Delete
} else {
[1381] Fix | Delete
// a user reported that the missing $post_author property issue appeared so let’s check if it exists.
[1382] Fix | Delete
$args['post']['author'] = isset( $post->post_author ) ? $post->post_author : '';
[1383] Fix | Delete
}
[1384] Fix | Delete
}
[1385] Fix | Delete
if ( ! isset( $args['post']['post_type'] ) ) {
[1386] Fix | Delete
// if currently on a single site, use the main query information just in case a custom query is broken.
[1387] Fix | Delete
if ( isset( $wp_the_query->post->post_type ) && $wp_the_query->is_single() ) {
[1388] Fix | Delete
$args['post']['post_type'] = $wp_the_query->post->post_type;
[1389] Fix | Delete
} else {
[1390] Fix | Delete
// a user reported that the missing $post_type property issue appeared so let’s check if it exists.
[1391] Fix | Delete
$args['post']['post_type'] = isset( $post->post_type ) ? $post->post_type : '';
[1392] Fix | Delete
}
[1393] Fix | Delete
}
[1394] Fix | Delete
}
[1395] Fix | Delete
[1396] Fix | Delete
// pass query arguments.
[1397] Fix | Delete
if ( isset( $wp_the_query ) ) {
[1398] Fix | Delete
if ( ! isset( $args['wp_the_query'] ) ) {
[1399] Fix | Delete
$args['wp_the_query'] = [];
[1400] Fix | Delete
}
[1401] Fix | Delete
$query = $wp_the_query->get_queried_object();
[1402] Fix | Delete
// term_id exists only for taxonomy archive pages.
[1403] Fix | Delete
if ( ! isset( $args['wp_the_query']['term_id'] ) && $query ) {
[1404] Fix | Delete
$args['wp_the_query']['term_id'] = isset( $query->term_id ) ? $query->term_id : '';
[1405] Fix | Delete
}
[1406] Fix | Delete
// taxonomy.
[1407] Fix | Delete
if ( ! isset( $args['wp_the_query']['taxonomy'] ) && $query ) {
[1408] Fix | Delete
$args['wp_the_query']['taxonomy'] = isset( $query->taxonomy ) ? $query->taxonomy : '';
[1409] Fix | Delete
}
[1410] Fix | Delete
[1411] Fix | Delete
// query type/ context.
[1412] Fix | Delete
if ( ! isset( $args['wp_the_query']['is_main_query'] ) ) {
[1413] Fix | Delete
$args['wp_the_query']['is_main_query'] = Advanced_Ads::get_instance()->is_main_query();
[1414] Fix | Delete
}
[1415] Fix | Delete
[1416] Fix | Delete
// REST API.
[1417] Fix | Delete
if ( ! isset( $args['wp_the_query']['is_rest_api'] ) ) {
[1418] Fix | Delete
$args['wp_the_query']['is_rest_api'] = defined( 'REST_REQUEST' ) && REST_REQUEST;
[1419] Fix | Delete
}
[1420] Fix | Delete
[1421] Fix | Delete
// `<!-- nextpage -->` tags.
[1422] Fix | Delete
if ( ! isset( $args['wp_the_query']['page'] ) ) {
[1423] Fix | Delete
$args['wp_the_query']['page'] = isset( $wp_the_query->query_vars['page'] ) && $wp_the_query->query_vars['page'] ? $wp_the_query->query_vars['page'] : 1;
[1424] Fix | Delete
$args['wp_the_query']['numpages'] = isset( $numpages ) ? $numpages : 1;
[1425] Fix | Delete
}
[1426] Fix | Delete
[1427] Fix | Delete
// query vars.
[1428] Fix | Delete
foreach ( self::$query_var_keys as $key ) {
[1429] Fix | Delete
if ( ! isset( $args['wp_the_query'][ $key ] ) ) {
[1430] Fix | Delete
$args['wp_the_query'][ $key ] = $wp_the_query->$key();
[1431] Fix | Delete
}
[1432] Fix | Delete
}
[1433] Fix | Delete
}
[1434] Fix | Delete
[1435] Fix | Delete
return $args;
[1436] Fix | Delete
}
[1437] Fix | Delete
[1438] Fix | Delete
/**
[1439] Fix | Delete
* ;odify post search query to search by post_title or ID
[1440] Fix | Delete
*
[1441] Fix | Delete
* @param array $query post search query.
[1442] Fix | Delete
*
[1443] Fix | Delete
* @return array
[1444] Fix | Delete
*/
[1445] Fix | Delete
public static function modify_post_search( $query ) {
[1446] Fix | Delete
[1447] Fix | Delete
// use ID and not search field if ID given.
[1448] Fix | Delete
if ( 0 !== absint( $query['s'] ) && strlen( $query['s'] ) === strlen( absint( $query['s'] ) ) ) {
[1449] Fix | Delete
$query['post__in'] = [ absint( $query['s'] ) ];
[1450] Fix | Delete
unset( $query['s'] );
[1451] Fix | Delete
}
[1452] Fix | Delete
[1453] Fix | Delete
$query['suppress_filters'] = false;
[1454] Fix | Delete
$query['orderby'] = 'post_title';
[1455] Fix | Delete
$query['post_status'] = [ 'publish', 'pending', 'draft', 'future' ];
[1456] Fix | Delete
[1457] Fix | Delete
return $query;
[1458] Fix | Delete
}
[1459] Fix | Delete
[1460] Fix | Delete
/**
[1461] Fix | Delete
* Modify post search SQL to search only in post title
[1462] Fix | Delete
*
[1463] Fix | Delete
* @param string $sql SQL statement.
[1464] Fix | Delete
*
[1465] Fix | Delete
* @return string
[1466] Fix | Delete
*/
[1467] Fix | Delete
public static function modify_post_search_sql( $sql ) {
[1468] Fix | Delete
global $wpdb;
[1469] Fix | Delete
// removes the search in content and excerpt columns.
[1470] Fix | Delete
$sql = preg_replace( "/OR \({$wpdb->posts}.post_(content|excerpt)( NOT)? LIKE '(.*?)'\)/", '', $sql );
[1471] Fix | Delete
[1472] Fix | Delete
return $sql;
[1473] Fix | Delete
}
[1474] Fix | Delete
[1475] Fix | Delete
/**
[1476] Fix | Delete
* Preg_replace callback used in modify_post_search_sql()
[1477] Fix | Delete
*
[1478] Fix | Delete
* @param array $matches results for post search.
[1479] Fix | Delete
*
[1480] Fix | Delete
* @return string
[1481] Fix | Delete
* @deprecated since version 1.8.16
[1482] Fix | Delete
*/
[1483] Fix | Delete
public static function modify_post_search_sql_callback( $matches ) {
[1484] Fix | Delete
global $wpdb;
[1485] Fix | Delete
if ( 'content' === $matches[1] && preg_match( '@^([0-9]+)$@', $matches[3], $matches_id ) ) {
[1486] Fix | Delete
$equals_op = ' NOT' === $matches[2] ? '!=' : '=';
[1487] Fix | Delete
[1488] Fix | Delete
return "{$wpdb->posts}.ID$equals_op$matches_id[1]";
[1489] Fix | Delete
} elseif ( ' NOT' === $matches[2] ) {
[1490] Fix | Delete
return '1=1';
[1491] Fix | Delete
} else {
[1492] Fix | Delete
return '1=0';
[1493] Fix | Delete
}
[1494] Fix | Delete
}
[1495] Fix | Delete
}
[1496] Fix | Delete
[1497] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function