仅在帖子编辑页面上使用插件代码

时间:2012-04-21 作者:Michael

我有一个wordpress插件,它干扰了另一个插件的功能。但是,我相信这种干扰只发生在管理方面。

我发现代码中的行相互干扰,它们似乎正在所有管理页面的页眉和页脚上加载html代码。

我想限制这些代码行,以便它们只显示在管理员的帖子/页面编辑页面上。

不太清楚怎么做。我知道我需要某种条件语句,但不确定代码应该如何读取,或者最好使用什么条件。

任何帮助都将不胜感激。

2 个回复
SO网友:random_user_name

使用@One-Trick-Pony的方法,这应该可以满足您的需要:

global $current_screen;  // Makes the $current_screen object available
if ($current_screen && $current_screen->base == "edit") {
    // Edit-page/post-only code here    
}
如果要在添加或编辑屏幕上显示,则:

global $current_screen;  // Makes the $current_screen object available           
if ($current_screen && ($current_screen->base == "edit" || $current_screen->base == "post")) {
    // Add-or-edit-page/post-only code       
 }

SO网友:Michael

尝试了cale\\u b的建议,发现他的代码只有在admin\\u init和admin\\u head已经加载的情况下才能工作(但这正是我试图有条件加载的代码),我需要换一种方式。

感谢Cale\\u b给了我一个小小的开端,从中我能够提出以下条件。此外,向Cale\\u b道歉,因为他没有提供足够的信息来知道他的代码无法工作。

工作代码如下:

if (basename($_SERVER[\'PHP_SELF\']) == "post-new.php" || (basename($_SERVER[\'PHP_SELF\']) == "post.php" && $_GET[\'action\'] == "edit")) {
    add_action( \'admin_init\', array(&$this,\'enqueue_assets\') );
    add_action( \'admin_head\', array(&$this,\'jquery_ui_dialog\') );
    add_action( \'admin_footer\', array(&$this,\'add_jquery_ui_dialog\') );     }
这使得我只能在管理员的post edit和new post页面上“运行”那些add\\u操作语句,从而消除了与其他插件的冲突。

结束

相关推荐

Mu-plugins文件夹在多站点安装中是如何工作的?

我对什么时候应该将插件文件放入mu插件有点困惑。我知道它必须使用插件,而且我知道它们是自动启用的。但是,在网络设置中,这是否会强制在所有子博客中启用插件文件?这是有道理的,那么这是我唯一一次应该在网络中放置插件文件吗?我什么时候希望插件代码在每个子博客中运行?例如,如果我想自动设置一个新的缩略图大小,我应该在那里这样做吗?或者还有其他例子吗。那么网络激活呢?