多站点-从网络的所有站点检索相同的主题选项

时间:2012-12-03 作者:Yelper

我正在运行多站点,每个子站点使用相同的自定义主题。我正在使用NHP选项上传徽标,并在该主题中更改联系人页面信息。

我想在主站点中添加一个站点列表页面(使用不同的主题),并在列表中的名称旁边显示每个子站点的徽标。

获取网站列表很好-没有问题,但就我的一生而言,我不知道如何显示徽标。

数据存储在每个站点选项表中的序列化数组中,选项名称为“nhp\\U opts”。

数据如下所示:

    a:5:{s:8:"last_tab";s:1:"0";i:19;s:59:"http://_PATH_TO_LOGO.png";i:20;
    s:34:"Test Street,Testing,Co. Test";i:21;s:16:"(000) 123 456789";s:10:"multi_text";
    a:4:{i:0;s:21:"Mon - Fri 9.30 - 6.00";i:1;s:18:"Sat - 10.00 - 6.00";
    i:2;s:18:"Sun - 12.00 - 5.00";i:3;s:22:"Bank Holidays - Closed";}}
我拼凑的代码是:

    <?php global $wpdb;
            $logos = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->options WHERE option_name = nhp_opts  "));
                foreach($logos as $logo){
                $thedata = $logos;
                $thedata = unserialize($thedata);
                echo $thedata;

                }?>
我得到的只是Array()-重复了很多次。

我对直接使用数据库不太熟悉,所以我对它不起作用并不感到意外!

我已经花了几天的时间来解决这个问题-如果有任何帮助,我将不胜感激!谢谢

2 个回复
最合适的回答,由SO网友:Samia Ruponti 整理而成

这可能是一个迟到的答复,但我希望这段代码将帮助您和其他人解决这个问题。

 <?php
  global $wpdb;
  $blogs = $wpdb->get_results("SELECT blog_id FROM {$wpdb->blogs} WHERE site_id = \'{$wpdb->siteid}\' AND spam = \'0\' AND deleted = \'0\' AND archived = \'0\' AND blog_id != 1 ");

  $sites = array();

 foreach ($blogs as $blog) {

 $sites[$blog->blog_id] = get_blog_option($blog->blog_id, \'nhp_opts\');

}
  ?>
现在,您可以使用img标记并循环使用它来获得您的选项,出于某种目的,当前站点选项在sql中被省略,如果您想在结果中也包括当前站点,您可以忽略AND blog_id != 1 这一行来自sql。

我希望这也能帮助其他人。

SO网友:developdaly

使用get_option() 将为您实现非序列化,并且更加容易。

<?php

global $wpdb;

$sites = $wpdb -> get_results($wpdb -> prepare("SELECT * FROM wp_blogs ORDER BY blog_id"));

foreach ($sites as $site) {
    switch_to_blog( $site);
    echo get_option(\'nhp_opts\');
    restore_current_blog();
}
我想在3.5中可能有更好的方法来做到这一点,但我现在找不到票。

结束

相关推荐

如何将wp-login.php重命名为MultiSite?

我想隐藏并重命名wp-login.php 在我的URL中,用于在多站点设置上创建品牌。从这个forum post 我知道我可以改变mysite.com/wp-login.php 到mysite.com/login 通过插入RewriteRule ^login$ wp-login.php 在我的.htaccess. 我喜欢URL栏不显示登录重定向到wp登录。如果我尝试在子网站下登录mysite.com/subsite1/login 它显示为重定向自mysite.com/subsite1/wp-login