我只是在我的一个插件中遇到了类似的问题(并且偶然发现了这个问题)。在我的例子中,我在admin\\u init函数中找到了一条条件语句。为了避免在每个管理页面上加载插件代码(以及javascript和CSS),我加入了以下检查:
$uri = isset($_SERVER[\'REQUEST_URI\']) ? $_SERVER[\'REQUEST_URI\'] : NULL ;
if ($uri && (strpos($uri,\'post.php\') OR strpos($uri,\'post-new.php\')) ) {
add_action( \'wp_ajax_my_plugin\', \'my_plugin_callback\' );
// load scripts etc.
}
这可以很好地将我的操作添加到$wp\\u过滤器中。php页面加载。但是当AJAX脚本将其数据发布到admin AJAX时。当然,它会再次运行admin\\u init函数(因为它是针对每个管理页面加载运行的),此时URI不包含“post”。php“或”发布新内容。php’。
我将wp\\u ajax add\\u action语句移到了URI测试之外,现在它工作得很好。