class-background-utils.php
952 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
namespace Smush\Core\Modules\Background;
class Background_Utils {
/**
* Thread safe version of get_site_option, queries the database directly to prevent use of cached values
*
* @param $option_id string
* @param $default
*
* @return false|mixed
*/
public function get_site_option( $option_id, $default = false ) {
global $wpdb;
$table = $wpdb->options;
$column = 'option_name';
$key_column = 'option_id';
$value_column = 'option_value';
if ( is_multisite() ) {
$table = $wpdb->sitemeta;
$column = 'meta_key';
$key_column = 'meta_id';
$value_column = 'meta_value';
}
$row = $wpdb->get_row( $wpdb->prepare( "
SELECT *
FROM {$table}
WHERE {$column} = %s
ORDER BY {$key_column} ASC
LIMIT 1
", $option_id ) );
if ( empty( $row->$value_column ) || ! is_object( $row ) ) {
return $default;
}
return maybe_unserialize( $row->$value_column );
}
}