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-inclu...
File: class-wp-site-query.php
$fields = "{$wpdb->blogs}.blog_id";
[500] Fix | Delete
}
[501] Fix | Delete
[502] Fix | Delete
// Parse site IDs for an IN clause.
[503] Fix | Delete
$site_id = absint( $this->query_vars['ID'] );
[504] Fix | Delete
if ( ! empty( $site_id ) ) {
[505] Fix | Delete
$this->sql_clauses['where']['ID'] = $wpdb->prepare( "{$wpdb->blogs}.blog_id = %d", $site_id );
[506] Fix | Delete
}
[507] Fix | Delete
[508] Fix | Delete
// Parse site IDs for an IN clause.
[509] Fix | Delete
if ( ! empty( $this->query_vars['site__in'] ) ) {
[510] Fix | Delete
$this->sql_clauses['where']['site__in'] = "{$wpdb->blogs}.blog_id IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['site__in'] ) ) . ' )';
[511] Fix | Delete
}
[512] Fix | Delete
[513] Fix | Delete
// Parse site IDs for a NOT IN clause.
[514] Fix | Delete
if ( ! empty( $this->query_vars['site__not_in'] ) ) {
[515] Fix | Delete
$this->sql_clauses['where']['site__not_in'] = "{$wpdb->blogs}.blog_id NOT IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['site__not_in'] ) ) . ' )';
[516] Fix | Delete
}
[517] Fix | Delete
[518] Fix | Delete
$network_id = absint( $this->query_vars['network_id'] );
[519] Fix | Delete
[520] Fix | Delete
if ( ! empty( $network_id ) ) {
[521] Fix | Delete
$this->sql_clauses['where']['network_id'] = $wpdb->prepare( 'site_id = %d', $network_id );
[522] Fix | Delete
}
[523] Fix | Delete
[524] Fix | Delete
// Parse site network IDs for an IN clause.
[525] Fix | Delete
if ( ! empty( $this->query_vars['network__in'] ) ) {
[526] Fix | Delete
$this->sql_clauses['where']['network__in'] = 'site_id IN ( ' . implode( ',', wp_parse_id_list( $this->query_vars['network__in'] ) ) . ' )';
[527] Fix | Delete
}
[528] Fix | Delete
[529] Fix | Delete
// Parse site network IDs for a NOT IN clause.
[530] Fix | Delete
if ( ! empty( $this->query_vars['network__not_in'] ) ) {
[531] Fix | Delete
$this->sql_clauses['where']['network__not_in'] = 'site_id NOT IN ( ' . implode( ',', wp_parse_id_list( $this->query_vars['network__not_in'] ) ) . ' )';
[532] Fix | Delete
}
[533] Fix | Delete
[534] Fix | Delete
if ( ! empty( $this->query_vars['domain'] ) ) {
[535] Fix | Delete
$this->sql_clauses['where']['domain'] = $wpdb->prepare( 'domain = %s', $this->query_vars['domain'] );
[536] Fix | Delete
}
[537] Fix | Delete
[538] Fix | Delete
// Parse site domain for an IN clause.
[539] Fix | Delete
if ( is_array( $this->query_vars['domain__in'] ) ) {
[540] Fix | Delete
$this->sql_clauses['where']['domain__in'] = "domain IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['domain__in'] ) ) . "' )";
[541] Fix | Delete
}
[542] Fix | Delete
[543] Fix | Delete
// Parse site domain for a NOT IN clause.
[544] Fix | Delete
if ( is_array( $this->query_vars['domain__not_in'] ) ) {
[545] Fix | Delete
$this->sql_clauses['where']['domain__not_in'] = "domain NOT IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['domain__not_in'] ) ) . "' )";
[546] Fix | Delete
}
[547] Fix | Delete
[548] Fix | Delete
if ( ! empty( $this->query_vars['path'] ) ) {
[549] Fix | Delete
$this->sql_clauses['where']['path'] = $wpdb->prepare( 'path = %s', $this->query_vars['path'] );
[550] Fix | Delete
}
[551] Fix | Delete
[552] Fix | Delete
// Parse site path for an IN clause.
[553] Fix | Delete
if ( is_array( $this->query_vars['path__in'] ) ) {
[554] Fix | Delete
$this->sql_clauses['where']['path__in'] = "path IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['path__in'] ) ) . "' )";
[555] Fix | Delete
}
[556] Fix | Delete
[557] Fix | Delete
// Parse site path for a NOT IN clause.
[558] Fix | Delete
if ( is_array( $this->query_vars['path__not_in'] ) ) {
[559] Fix | Delete
$this->sql_clauses['where']['path__not_in'] = "path NOT IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['path__not_in'] ) ) . "' )";
[560] Fix | Delete
}
[561] Fix | Delete
[562] Fix | Delete
if ( is_numeric( $this->query_vars['archived'] ) ) {
[563] Fix | Delete
$archived = absint( $this->query_vars['archived'] );
[564] Fix | Delete
$this->sql_clauses['where']['archived'] = $wpdb->prepare( 'archived = %s ', absint( $archived ) );
[565] Fix | Delete
}
[566] Fix | Delete
[567] Fix | Delete
if ( is_numeric( $this->query_vars['mature'] ) ) {
[568] Fix | Delete
$mature = absint( $this->query_vars['mature'] );
[569] Fix | Delete
$this->sql_clauses['where']['mature'] = $wpdb->prepare( 'mature = %d ', $mature );
[570] Fix | Delete
}
[571] Fix | Delete
[572] Fix | Delete
if ( is_numeric( $this->query_vars['spam'] ) ) {
[573] Fix | Delete
$spam = absint( $this->query_vars['spam'] );
[574] Fix | Delete
$this->sql_clauses['where']['spam'] = $wpdb->prepare( 'spam = %d ', $spam );
[575] Fix | Delete
}
[576] Fix | Delete
[577] Fix | Delete
if ( is_numeric( $this->query_vars['deleted'] ) ) {
[578] Fix | Delete
$deleted = absint( $this->query_vars['deleted'] );
[579] Fix | Delete
$this->sql_clauses['where']['deleted'] = $wpdb->prepare( 'deleted = %d ', $deleted );
[580] Fix | Delete
}
[581] Fix | Delete
[582] Fix | Delete
if ( is_numeric( $this->query_vars['public'] ) ) {
[583] Fix | Delete
$public = absint( $this->query_vars['public'] );
[584] Fix | Delete
$this->sql_clauses['where']['public'] = $wpdb->prepare( 'public = %d ', $public );
[585] Fix | Delete
}
[586] Fix | Delete
[587] Fix | Delete
if ( is_numeric( $this->query_vars['lang_id'] ) ) {
[588] Fix | Delete
$lang_id = absint( $this->query_vars['lang_id'] );
[589] Fix | Delete
$this->sql_clauses['where']['lang_id'] = $wpdb->prepare( 'lang_id = %d ', $lang_id );
[590] Fix | Delete
}
[591] Fix | Delete
[592] Fix | Delete
// Parse site language IDs for an IN clause.
[593] Fix | Delete
if ( ! empty( $this->query_vars['lang__in'] ) ) {
[594] Fix | Delete
$this->sql_clauses['where']['lang__in'] = 'lang_id IN ( ' . implode( ',', wp_parse_id_list( $this->query_vars['lang__in'] ) ) . ' )';
[595] Fix | Delete
}
[596] Fix | Delete
[597] Fix | Delete
// Parse site language IDs for a NOT IN clause.
[598] Fix | Delete
if ( ! empty( $this->query_vars['lang__not_in'] ) ) {
[599] Fix | Delete
$this->sql_clauses['where']['lang__not_in'] = 'lang_id NOT IN ( ' . implode( ',', wp_parse_id_list( $this->query_vars['lang__not_in'] ) ) . ' )';
[600] Fix | Delete
}
[601] Fix | Delete
[602] Fix | Delete
// Falsey search strings are ignored.
[603] Fix | Delete
if ( strlen( $this->query_vars['search'] ) ) {
[604] Fix | Delete
$search_columns = array();
[605] Fix | Delete
[606] Fix | Delete
if ( $this->query_vars['search_columns'] ) {
[607] Fix | Delete
$search_columns = array_intersect( $this->query_vars['search_columns'], array( 'domain', 'path' ) );
[608] Fix | Delete
}
[609] Fix | Delete
[610] Fix | Delete
if ( ! $search_columns ) {
[611] Fix | Delete
$search_columns = array( 'domain', 'path' );
[612] Fix | Delete
}
[613] Fix | Delete
[614] Fix | Delete
/**
[615] Fix | Delete
* Filters the columns to search in a WP_Site_Query search.
[616] Fix | Delete
*
[617] Fix | Delete
* The default columns include 'domain' and 'path.
[618] Fix | Delete
*
[619] Fix | Delete
* @since 4.6.0
[620] Fix | Delete
*
[621] Fix | Delete
* @param string[] $search_columns Array of column names to be searched.
[622] Fix | Delete
* @param string $search Text being searched.
[623] Fix | Delete
* @param WP_Site_Query $query The current WP_Site_Query instance.
[624] Fix | Delete
*/
[625] Fix | Delete
$search_columns = apply_filters( 'site_search_columns', $search_columns, $this->query_vars['search'], $this );
[626] Fix | Delete
[627] Fix | Delete
$this->sql_clauses['where']['search'] = $this->get_search_sql( $this->query_vars['search'], $search_columns );
[628] Fix | Delete
}
[629] Fix | Delete
[630] Fix | Delete
$date_query = $this->query_vars['date_query'];
[631] Fix | Delete
if ( ! empty( $date_query ) && is_array( $date_query ) ) {
[632] Fix | Delete
$this->date_query = new WP_Date_Query( $date_query, 'registered' );
[633] Fix | Delete
[634] Fix | Delete
// Strip leading 'AND'.
[635] Fix | Delete
$this->sql_clauses['where']['date_query'] = preg_replace( '/^\s*AND\s*/', '', $this->date_query->get_sql() );
[636] Fix | Delete
}
[637] Fix | Delete
[638] Fix | Delete
$join = '';
[639] Fix | Delete
$groupby = '';
[640] Fix | Delete
[641] Fix | Delete
if ( ! empty( $this->meta_query_clauses ) ) {
[642] Fix | Delete
$join .= $this->meta_query_clauses['join'];
[643] Fix | Delete
[644] Fix | Delete
// Strip leading 'AND'.
[645] Fix | Delete
$this->sql_clauses['where']['meta_query'] = preg_replace( '/^\s*AND\s*/', '', $this->meta_query_clauses['where'] );
[646] Fix | Delete
[647] Fix | Delete
if ( ! $this->query_vars['count'] ) {
[648] Fix | Delete
$groupby = "{$wpdb->blogs}.blog_id";
[649] Fix | Delete
}
[650] Fix | Delete
}
[651] Fix | Delete
[652] Fix | Delete
$where = implode( ' AND ', $this->sql_clauses['where'] );
[653] Fix | Delete
[654] Fix | Delete
$pieces = array( 'fields', 'join', 'where', 'orderby', 'limits', 'groupby' );
[655] Fix | Delete
[656] Fix | Delete
/**
[657] Fix | Delete
* Filters the site query clauses.
[658] Fix | Delete
*
[659] Fix | Delete
* @since 4.6.0
[660] Fix | Delete
*
[661] Fix | Delete
* @param string[] $clauses {
[662] Fix | Delete
* Associative array of the clauses for the query.
[663] Fix | Delete
*
[664] Fix | Delete
* @type string $fields The SELECT clause of the query.
[665] Fix | Delete
* @type string $join The JOIN clause of the query.
[666] Fix | Delete
* @type string $where The WHERE clause of the query.
[667] Fix | Delete
* @type string $orderby The ORDER BY clause of the query.
[668] Fix | Delete
* @type string $limits The LIMIT clause of the query.
[669] Fix | Delete
* @type string $groupby The GROUP BY clause of the query.
[670] Fix | Delete
* }
[671] Fix | Delete
* @param WP_Site_Query $query Current instance of WP_Site_Query (passed by reference).
[672] Fix | Delete
*/
[673] Fix | Delete
$clauses = apply_filters_ref_array( 'sites_clauses', array( compact( $pieces ), &$this ) );
[674] Fix | Delete
[675] Fix | Delete
$fields = isset( $clauses['fields'] ) ? $clauses['fields'] : '';
[676] Fix | Delete
$join = isset( $clauses['join'] ) ? $clauses['join'] : '';
[677] Fix | Delete
$where = isset( $clauses['where'] ) ? $clauses['where'] : '';
[678] Fix | Delete
$orderby = isset( $clauses['orderby'] ) ? $clauses['orderby'] : '';
[679] Fix | Delete
$limits = isset( $clauses['limits'] ) ? $clauses['limits'] : '';
[680] Fix | Delete
$groupby = isset( $clauses['groupby'] ) ? $clauses['groupby'] : '';
[681] Fix | Delete
[682] Fix | Delete
if ( $where ) {
[683] Fix | Delete
$where = 'WHERE ' . $where;
[684] Fix | Delete
}
[685] Fix | Delete
[686] Fix | Delete
if ( $groupby ) {
[687] Fix | Delete
$groupby = 'GROUP BY ' . $groupby;
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
if ( $orderby ) {
[691] Fix | Delete
$orderby = "ORDER BY $orderby";
[692] Fix | Delete
}
[693] Fix | Delete
[694] Fix | Delete
$found_rows = '';
[695] Fix | Delete
if ( ! $this->query_vars['no_found_rows'] ) {
[696] Fix | Delete
$found_rows = 'SQL_CALC_FOUND_ROWS';
[697] Fix | Delete
}
[698] Fix | Delete
[699] Fix | Delete
$this->sql_clauses['select'] = "SELECT $found_rows $fields";
[700] Fix | Delete
$this->sql_clauses['from'] = "FROM $wpdb->blogs $join";
[701] Fix | Delete
$this->sql_clauses['groupby'] = $groupby;
[702] Fix | Delete
$this->sql_clauses['orderby'] = $orderby;
[703] Fix | Delete
$this->sql_clauses['limits'] = $limits;
[704] Fix | Delete
[705] Fix | Delete
// Beginning of the string is on a new line to prevent leading whitespace. See https://core.trac.wordpress.org/ticket/56841.
[706] Fix | Delete
$this->request =
[707] Fix | Delete
"{$this->sql_clauses['select']}
[708] Fix | Delete
{$this->sql_clauses['from']}
[709] Fix | Delete
{$where}
[710] Fix | Delete
{$this->sql_clauses['groupby']}
[711] Fix | Delete
{$this->sql_clauses['orderby']}
[712] Fix | Delete
{$this->sql_clauses['limits']}";
[713] Fix | Delete
[714] Fix | Delete
if ( $this->query_vars['count'] ) {
[715] Fix | Delete
return (int) $wpdb->get_var( $this->request );
[716] Fix | Delete
}
[717] Fix | Delete
[718] Fix | Delete
$site_ids = $wpdb->get_col( $this->request );
[719] Fix | Delete
[720] Fix | Delete
return array_map( 'intval', $site_ids );
[721] Fix | Delete
}
[722] Fix | Delete
[723] Fix | Delete
/**
[724] Fix | Delete
* Populates found_sites and max_num_pages properties for the current query
[725] Fix | Delete
* if the limit clause was used.
[726] Fix | Delete
*
[727] Fix | Delete
* @since 4.6.0
[728] Fix | Delete
*
[729] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[730] Fix | Delete
*/
[731] Fix | Delete
private function set_found_sites() {
[732] Fix | Delete
global $wpdb;
[733] Fix | Delete
[734] Fix | Delete
if ( $this->query_vars['number'] && ! $this->query_vars['no_found_rows'] ) {
[735] Fix | Delete
/**
[736] Fix | Delete
* Filters the query used to retrieve found site count.
[737] Fix | Delete
*
[738] Fix | Delete
* @since 4.6.0
[739] Fix | Delete
*
[740] Fix | Delete
* @param string $found_sites_query SQL query. Default 'SELECT FOUND_ROWS()'.
[741] Fix | Delete
* @param WP_Site_Query $site_query The `WP_Site_Query` instance.
[742] Fix | Delete
*/
[743] Fix | Delete
$found_sites_query = apply_filters( 'found_sites_query', 'SELECT FOUND_ROWS()', $this );
[744] Fix | Delete
[745] Fix | Delete
$this->found_sites = (int) $wpdb->get_var( $found_sites_query );
[746] Fix | Delete
}
[747] Fix | Delete
}
[748] Fix | Delete
[749] Fix | Delete
/**
[750] Fix | Delete
* Used internally to generate an SQL string for searching across multiple columns.
[751] Fix | Delete
*
[752] Fix | Delete
* @since 4.6.0
[753] Fix | Delete
*
[754] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[755] Fix | Delete
*
[756] Fix | Delete
* @param string $search Search string.
[757] Fix | Delete
* @param string[] $columns Array of columns to search.
[758] Fix | Delete
* @return string Search SQL.
[759] Fix | Delete
*/
[760] Fix | Delete
protected function get_search_sql( $search, $columns ) {
[761] Fix | Delete
global $wpdb;
[762] Fix | Delete
[763] Fix | Delete
if ( str_contains( $search, '*' ) ) {
[764] Fix | Delete
$like = '%' . implode( '%', array_map( array( $wpdb, 'esc_like' ), explode( '*', $search ) ) ) . '%';
[765] Fix | Delete
} else {
[766] Fix | Delete
$like = '%' . $wpdb->esc_like( $search ) . '%';
[767] Fix | Delete
}
[768] Fix | Delete
[769] Fix | Delete
$searches = array();
[770] Fix | Delete
foreach ( $columns as $column ) {
[771] Fix | Delete
$searches[] = $wpdb->prepare( "$column LIKE %s", $like );
[772] Fix | Delete
}
[773] Fix | Delete
[774] Fix | Delete
return '(' . implode( ' OR ', $searches ) . ')';
[775] Fix | Delete
}
[776] Fix | Delete
[777] Fix | Delete
/**
[778] Fix | Delete
* Parses and sanitizes 'orderby' keys passed to the site query.
[779] Fix | Delete
*
[780] Fix | Delete
* @since 4.6.0
[781] Fix | Delete
*
[782] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[783] Fix | Delete
*
[784] Fix | Delete
* @param string $orderby Alias for the field to order by.
[785] Fix | Delete
* @return string|false Value to used in the ORDER clause. False otherwise.
[786] Fix | Delete
*/
[787] Fix | Delete
protected function parse_orderby( $orderby ) {
[788] Fix | Delete
global $wpdb;
[789] Fix | Delete
[790] Fix | Delete
$parsed = false;
[791] Fix | Delete
[792] Fix | Delete
switch ( $orderby ) {
[793] Fix | Delete
case 'site__in':
[794] Fix | Delete
$site__in = implode( ',', array_map( 'absint', $this->query_vars['site__in'] ) );
[795] Fix | Delete
$parsed = "FIELD( {$wpdb->blogs}.blog_id, $site__in )";
[796] Fix | Delete
break;
[797] Fix | Delete
case 'network__in':
[798] Fix | Delete
$network__in = implode( ',', array_map( 'absint', $this->query_vars['network__in'] ) );
[799] Fix | Delete
$parsed = "FIELD( {$wpdb->blogs}.site_id, $network__in )";
[800] Fix | Delete
break;
[801] Fix | Delete
case 'domain':
[802] Fix | Delete
case 'last_updated':
[803] Fix | Delete
case 'path':
[804] Fix | Delete
case 'registered':
[805] Fix | Delete
case 'deleted':
[806] Fix | Delete
case 'spam':
[807] Fix | Delete
case 'mature':
[808] Fix | Delete
case 'archived':
[809] Fix | Delete
case 'public':
[810] Fix | Delete
$parsed = $orderby;
[811] Fix | Delete
break;
[812] Fix | Delete
case 'network_id':
[813] Fix | Delete
$parsed = 'site_id';
[814] Fix | Delete
break;
[815] Fix | Delete
case 'domain_length':
[816] Fix | Delete
$parsed = 'CHAR_LENGTH(domain)';
[817] Fix | Delete
break;
[818] Fix | Delete
case 'path_length':
[819] Fix | Delete
$parsed = 'CHAR_LENGTH(path)';
[820] Fix | Delete
break;
[821] Fix | Delete
case 'id':
[822] Fix | Delete
$parsed = "{$wpdb->blogs}.blog_id";
[823] Fix | Delete
break;
[824] Fix | Delete
}
[825] Fix | Delete
[826] Fix | Delete
if ( ! empty( $parsed ) || empty( $this->meta_query_clauses ) ) {
[827] Fix | Delete
return $parsed;
[828] Fix | Delete
}
[829] Fix | Delete
[830] Fix | Delete
$meta_clauses = $this->meta_query->get_clauses();
[831] Fix | Delete
if ( empty( $meta_clauses ) ) {
[832] Fix | Delete
return $parsed;
[833] Fix | Delete
}
[834] Fix | Delete
[835] Fix | Delete
$primary_meta_query = reset( $meta_clauses );
[836] Fix | Delete
if ( ! empty( $primary_meta_query['key'] ) && $primary_meta_query['key'] === $orderby ) {
[837] Fix | Delete
$orderby = 'meta_value';
[838] Fix | Delete
}
[839] Fix | Delete
[840] Fix | Delete
switch ( $orderby ) {
[841] Fix | Delete
case 'meta_value':
[842] Fix | Delete
if ( ! empty( $primary_meta_query['type'] ) ) {
[843] Fix | Delete
$parsed = "CAST({$primary_meta_query['alias']}.meta_value AS {$primary_meta_query['cast']})";
[844] Fix | Delete
} else {
[845] Fix | Delete
$parsed = "{$primary_meta_query['alias']}.meta_value";
[846] Fix | Delete
}
[847] Fix | Delete
break;
[848] Fix | Delete
case 'meta_value_num':
[849] Fix | Delete
$parsed = "{$primary_meta_query['alias']}.meta_value+0";
[850] Fix | Delete
break;
[851] Fix | Delete
default:
[852] Fix | Delete
if ( isset( $meta_clauses[ $orderby ] ) ) {
[853] Fix | Delete
$meta_clause = $meta_clauses[ $orderby ];
[854] Fix | Delete
$parsed = "CAST({$meta_clause['alias']}.meta_value AS {$meta_clause['cast']})";
[855] Fix | Delete
}
[856] Fix | Delete
}
[857] Fix | Delete
[858] Fix | Delete
return $parsed;
[859] Fix | Delete
}
[860] Fix | Delete
[861] Fix | Delete
/**
[862] Fix | Delete
* Parses an 'order' query variable and cast it to 'ASC' or 'DESC' as necessary.
[863] Fix | Delete
*
[864] Fix | Delete
* @since 4.6.0
[865] Fix | Delete
*
[866] Fix | Delete
* @param string $order The 'order' query variable.
[867] Fix | Delete
* @return string The sanitized 'order' query variable.
[868] Fix | Delete
*/
[869] Fix | Delete
protected function parse_order( $order ) {
[870] Fix | Delete
if ( ! is_string( $order ) || empty( $order ) ) {
[871] Fix | Delete
return 'ASC';
[872] Fix | Delete
}
[873] Fix | Delete
[874] Fix | Delete
if ( 'ASC' === strtoupper( $order ) ) {
[875] Fix | Delete
return 'ASC';
[876] Fix | Delete
} else {
[877] Fix | Delete
return 'DESC';
[878] Fix | Delete
}
[879] Fix | Delete
}
[880] Fix | Delete
}
[881] Fix | Delete
[882] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function