【发布时间】:2020-02-25 20:16:37
【问题描述】:
我正在寻找一种不会在单页上激活某个插件的解决方案。
我尝试使用随附的代码(由@Kamil Grzegorczyk 在Wordpress Disable Plugin on Specific Pages/Posts 上提供)但没有成功。
add_filter( 'option_active_plugins', 'lg_disable_cart66_plugin' );
function lg_disable_cart66_plugin($plugins){
if(strpos($_SERVER['REQUEST_URI'], '/store/') === FALSE AND strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === FALSE) {
$key = array_search( 'cart66/cart66.php' , $plugins );
if ( false !== $key ) unset( $plugins[$key] );
}
return $plugins;
}
我也尝试过使用我们的插件管理器,但它没有帮助不在单个页面上激活某个插件。
顺便说一句,如果有人通过在帖子/页面上追踪他们的简码来获得只能激活某些插件的代码,例如联系表格 7,那将是非常棒的! 如果 x 页面/帖子有一个包含“第 7 号联系表格”的简码,则激活第 7 号联系表格插件,否则不要激活。
无论如何,在这个阶段,一个简单的解决方案就可以了:)
谢谢。
【问题讨论】:
-
你能不能先解释一下为什么你想要这个?我不认为总是尝试启用/禁用插件是一个好主意。
-
我的猜测是他想尽量减少脚本的负载 - 因此,如果该页面上有联系表格,则仅加载 CF7s 脚本。 - 但是将它们全部停用并再次激活它们似乎是个坏主意。 - 想象一下如果网站上有多个用户 - 用户 A 告诉 DB 停用 CF7,而用户 B 告诉 DB 激活它。好像很麻烦
-
但是如果存在短代码则可以加载脚本,并且已在姊妹网站上回答:wordpress.stackexchange.com/a/191512/82677
-
您好,感谢您的回复。我需要停用您在此页面屏幕左下方看到的插件:worldpronet.com/123
-
嗨 Stender,感谢您的链接,我已经检查过了,这是一个好的开始,但它并没有完全回答我的问题,因为它就像一个特定的主题,与插件无关。目前我需要一个全局插件停用的解决方案,而不是基于短代码的插件。我的建议是针对每种情况都有一个解决方案。
标签: php wordpress plugins shortcode contact-form-7