gpt4 book ai didi

php - Wordpress Multisite - 将功能添加到 functions.php 以仅影响 1 个站点

转载 作者:行者123 更新时间:2023-12-05 02:22:32 26 4
gpt4 key购买 nike

我正在运行一个带有 2 个博客(site1.com 和 site2.com)的 wordpress 多站点

整个站点共享相同的主题以及 functions.php 文件。

我需要将以下过滤器放入 function.php 文件中,但我需要此过滤器只影响 1 个博客 - site2.com

过滤器如下:

add_filter( 'get_manager_nav', 'set_manager_nav' );

function set_manager_nav( $urls ) {
unset($urls['voucher']);
return $urls;
}

有没有办法将此过滤器仅应用于 1 个站点??

我所做的是,我创建了一个新插件,我已将功能添加到插件并仅在 site2.com 上激活了插件。

效果很好,但我想使用简单的代码片段比使用插件要好得多,那么有没有办法使用代码片段来做到这一点?

最佳答案

在我看来,在多站点中定位一个子站点的最佳方法是在过滤器调用的函数中使用 get_current_blog_id() 函数。下面是一些可行代码的示例:

<?php
function function_to_call(){

if( get_current_blog_id() === 1 ){
// Return something if the site ID matches the number one...
}

// Return something if the site ID does not match the number 1
}
add_filter( 'filter_name', 'function_to_call' );
?>

您可以转到 https://example.org/wp-admin/network/sites.php 获取您要定位的网站的 ID其中 https://example.org替换为您的域。

与此处列出的其他方法相比,这种方法有一些好处。

  1. 如果您有多个使用不同域的多站点安装版本,这将有效。例如,您可能有 http://localhost/site1 、site1.example.org 和 site1.staging.example.org。如果您检查域,过滤器将在除生产之外的每个站点上中断。如果您使用 ID,它应该可以全面使用。
  2. 其他选项(例如创建子主题或插件)确实有效,但当您谈论在单个 Hook 上运行函数时,它们往往会过大。

关于php - Wordpress Multisite - 将功能添加到 functions.php 以仅影响 1 个站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com