仪表板中所有站点选项的列表

时间:2013-01-19 作者:shea

我知道我可以去/wp-admin/options.php 在单个安装上(或在多站点安装的子站点上),它将为我提供站点的{prefix}opitions 数据库表。

如何在网络仪表板中为{prefix}sitemeta 桌子

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

没有这方面的功能。但是您可以使用这样的自定义SQL查询…

SELECT meta_key, meta_value
    FROM $wpdb->sitemeta
    WHERE site_id = $wpdb->siteid
        AND `meta_key`  NOT  LIKE  \'_site_transient%\'
    ORDER BY meta_key
…获取所有非瞬态选项。

基本示例:

/**
 * Plugin Name: T5 Multi-Site Options
 * Description: Add a page to show all network options.
 * Plugin URI:
 * Version:     2013.01.19
 * Author:      Thomas Scholz
 * Author URI:  http://toscho.de
 * Licence:     MIT
 * License URI: http://opensource.org/licenses/MIT
 * Network:     true
 */

add_action( \'network_admin_menu\', array ( \'T5_MS_Options\', \'register_admin_menu\' ) );

class T5_MS_Options {

    public static function register_admin_menu()
    {
        return add_menu_page(
            \'Network Options\',
            \'Network Options\',
            \'update_core\',
            \'network-options\',
            array ( __CLASS__, \'render_page\' )
        );
    }

    public static function render_page()
    {
        print \'<h1>\' . $GLOBALS[\'title\'] . \'</h1>\';

        global $wpdb;

        $sql = "SELECT meta_key, meta_value
            FROM $wpdb->sitemeta
            WHERE site_id = $wpdb->siteid
                AND `meta_key`  NOT  LIKE  \'_site_transient%\'
            ORDER BY meta_key";

        $options = $wpdb->get_results( $sql );

        if ( ! $options )
            return print "<p>Error: Could not find anything.</p>";

        $header = \'<tr><th>Key</th><th>Value</th><th>Serialized</th></tr>\';
        print \'<table class="widefat">\';
        print "<thead>$header</thead>";
        print "<tfoot>$header</tfoot>";

        foreach ( $options as $option )
        {
            print \'<tr><td>\' . $option->meta_key . \'</td><td><pre>\';
            $serialized = FALSE;
            $val = maybe_unserialize( $option->meta_value );

            if ( $val !== $option->meta_value )
                $serialized = TRUE;

            print htmlspecialchars( print_r( $val, TRUE ), ENT_QUOTES, \'utf-8\', FALSE );

            print \'</pre></td><td>\' . ( $serialized ? \'yes\' : \'no\' ) . \'</td></tr>\';

        }

        print \'</table>\';
    }
}

结束

相关推荐

WordPress MultiSite-可以将主站点放入子目录中吗?

我正在创建一个具有不同语言版本的网站,客户的要求是所有语言版本都是:在多站点设置中有一个不同的站点,它们都有这样的地址:mysite。由于主站点是英文的,所以它的地址实际上必须是mysite。com/en,不仅仅是mysite。com公司如果可能的话,我不想从主站点重定向到一个只有mysite地址的子站点。com/en,但是否要使用具有子目录地址的实际主站点?原因:管理界面;数据库更干净且一致。