Make WordPress Core

Ticket #37923: sitemeta.php

File sitemeta.php, 2.7 KB (added by spacedmonkey, 10 years ago)
Line 
1<?php
2
3function add_site_meta( $site_id, $meta_key, $meta_value, $unique = false ) {
4 // Bail if site meta table is not installed.
5 if ( get_option( 'db_version' ) < 34370 ) {
6 return false;
7 }
8
9 $added = add_metadata( 'blog', $site_id, $meta_key, $meta_value, $unique );
10
11 // Bust site query cache.
12 if ( $added ) {
13 wp_cache_set( 'last_changed', microtime(), 'sites' );
14 }
15
16 return $added;
17}
18
19
20function delete_site_meta( $site_id, $meta_key, $meta_value = '' ) {
21 // Bail if site meta table is not installed.
22 if ( get_option( 'db_version' ) < 34370 ) {
23 return false;
24 }
25
26 $deleted = delete_metadata( 'blog', $site_id, $meta_key, $meta_value );
27
28 // Bust site query cache.
29 if ( $deleted ) {
30 wp_cache_set( 'last_changed', microtime(), 'sites' );
31 }
32
33 return $deleted;
34}
35
36function get_site_meta( $site_id, $key = '', $single = false ) {
37 // Bail if site meta table is not installed.
38 if ( get_option( 'db_version' ) < 34370 ) {
39 return false;
40 }
41
42 // backwards compat
43 $pre = apply_filters( "pre_option_{$key}", false, $key );
44 if ( false !== $pre ){
45 return $pre;
46 }
47
48 $value = get_metadata( 'blog', $site_id, $key, $single );
49 //backwards compat
50 return apply_filters( "option_{$key}", maybe_unserialize( $value ), $key );
51}
52
53function update_site_meta( $site_id, $meta_key, $meta_value, $prev_value = '' ) {
54 // Bail if site meta table is not installed.
55 if ( get_option( 'db_version' ) < 34370 ) {
56 return false;
57 }
58
59 $updated = update_metadata( 'blog', $site_id, $meta_key, $meta_value, $prev_value );
60
61 // Bust site query cache.
62 if ( $updated ) {
63 wp_cache_set( 'last_changed', microtime(), 'sites' );
64 }
65
66 return $updated;
67}
68
69function list_of_site_meta_keys(){
70 $list = array( 'blogname','siteurl','post_count','home','allowedthemes','blog_public','WPLANG','blogdescription');
71 return apply_filters('list_of_site_meta_keys', $list);
72}
73
74function sync_update_option( $option, $old_value, $value ){
75 $list = list_of_site_meta_keys();
76 if(!in_array( $option, $list) ){
77 return;
78 }
79 $site_id = get_current_blog_id();
80 update_site_meta( $site_id, $option, $value, $old_value );
81 return;
82}
83add_action( 'updated_option', 'sync_update_option', 99, 3 );
84
85function sync_add_option( $option, $value ){
86 $list = list_of_site_meta_keys();
87 if(!in_array( $option, $list) ){
88 return;
89 }
90 $site_id = get_current_blog_id();
91 add_site_meta( $site_id, $option, $value );
92 return;
93}
94add_action( 'added_option', 'sync_add_option', 99, 2 );
95
96function sync_delete_option( $option ){
97 $list = list_of_site_meta_keys();
98 if(!in_array( $option, $list) ){
99 return;
100 }
101 $site_id = get_current_blog_id();
102 delete_site_meta( $site_id, $option );
103 return;
104}
105add_action( 'deleted_option', 'sync_delete_option', 99, 1 );