如何在多站点中调用每个站点的插件函数?

时间:2019-02-18 作者:Mark

My goal is to be able to call a plugin function per site and of course it has different result based on the site data.

e、 g。

我有一个插件名为:sample-plugin.php

内部有一个函数,名为:

function sp_echo_site()
{
   echo get_site_url();
}
我有一个多网站里面有3个网站:例如动物。com,水果。com和人员。com公司

在网络层面,我想sp_echo_site() 作用

我想执行以下循环,但它当然不起作用,我如何才能使其起作用?

foreach (get_sites() as $site)
{
   $site->sp_echo_site();
}
如何实现以下结果:

animals.com
fruits.com
people.com
这可能吗?还是我必须去数据库?或任何其他替代方法?

3 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

你就快到了。。。

如果插件中有此项:

function sp_echo_site() {
   echo get_site_url();
}
然后调用此函数,如下所示:

sp_echo_site();
此行将在当前站点的上下文中运行此函数。

所以你必须这样做:

if ( function_exists( \'get_sites\' ) ) {
    foreach ( get_sites() as $site ) {
        switch_to_blog( $site->blog_id );

        sp_echo_site();

        restore_current_blog();
    }
}

SO网友:troxxx

Mark,要获得以下结果,必须更改foreach循环。请尝试以下代码:

foreach (get_sites() as $site) {
  echo $site->__get(\'siteurl\');
}
编辑:Wordpress reference

SO网友:Svetoslav Marinov

是的,这是一个选项,或者你可以这样做。com/?trigger\\u my\\u functsub1。exmaple。com/?trigger\\u my\\u func或exmaple。com/sub1/?trigger\\u my\\u Func通过在访问网络中的子网站时触发方法,该方法应在该网站的上下文中运行,并输出特定于网站的信息。

相关推荐

是否可以使用unctions.php将文本插入到html标记中?

我的意思是:我正在使用一个名为“pods”的插件,它允许创建自定义(CPT)并在这些CPT之间建立关系。然而,我可以看到一个小小的缺陷,我为美国各州创建了一个CPT,所以每个CPT都是一个单独的州,这意味着在这个CPT中创建的每个帖子都有州的标题。下面是HTML和相关CSS<header class=\"entry-header clr\"> <h2 class=\"single-post-title entry-title\" itemprop=\"headline\"