检查WPDB中是否存在当前站点ID和值

时间:2017-02-26 作者:Jarod Thornton

How can I check the current site id against the database and do something?

我正在检查当前站点id是否存在于WordPress MU Domain Mapping 插件表。有列用于blog_idactive. 理想情况下,如果blog_id 存在且为active 然后做点什么。

function is_domain_mapped() {
    global $wpdb;
    $domains = $wpdb->get_col( "SELECT active FROM $wpdb->dmtable} WHERE blog_id  = %d", $blog_id );
        // Do Something
    }
}
add_action( \'wp_head\', \'is_domain_mapped\', -1);

1 个回复
最合适的回答,由SO网友:birgire 整理而成

请注意,您应该能够映射没有第三方插件的域。

以下是一个未经测试的建议,建议您在当前情况下进行回访:

global $wpdb;

// Nothing to do if not multisite
if( ! is_multisite() )
    return;

// Define the custom table
$wpdb->dmtable = $wpdb->base_prefix . \'domain_mapping\';

// Check if the custom table exists
if ( $wpdb->dmtable != $wpdb->get_var( "SHOW TABLES LIKE \'{$wpdb->dmtable}\'" ) )
    return;

// Check if current site is mapped  
$domain_exists = (bool) $wpdb->get_var( 
    $wpdb->prepare( 
        "SELECT COUNT(blog_id) 
             FROM {$wpdb->dmtable} 
             WHERE blog_id = %d AND active = 1 LIMIT 0,1", 
        get_current_blog_id() 
    )
);

if( $domain_exists )
{
    // do something
}

相关推荐

使用WordPress MultiSite(WPMS),每个创建的站点都有一个远程数据库

所以,我很想找到一种方法,为每个新添加的子站点使用具有不同远程数据库的WPM。我所知道的。我知道远程数据库可以位于其自己的服务器上,以允许远程站点连接使用DB用户的附加权限,并以%通配符的形式将IP绑定到DB或IP地址(如果您的服务器是网络的一部分)。请参见:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-with-mysql或对我来说