我有一个插件,它实现了一个REST,当管理员将我支持的一个短代码添加到页面或post时,需要通知它。我用这样的函数把save_post挂起来。
add_action( 'save_post', 'detect_shortcodes');但是,当我从编辑器更新时,它会执行一个ajax调用来实例化我的插件。它所做的第一件事是确定是加载公共的还是像这样的管理挂钩。
if(is_admin())
{
$this->define_admin_hooks();
}
else
{
$this->define_public_hooks();
}当然,我的detect_shortcodes函数在管理端。使用TinyMCE编辑器,它正确工作,并实例化了我的管理钩子。使用Gutenberg编辑器,is_admin()返回false。
是否有is_admin()的替代品可以用于Gutenberg调用?
发布于 2020-05-25 20:56:17
您可以尝试使用以下方法来检测rest
if ( is_admin() || defined( 'REST_REQUEST' ) && REST_REQUEST ) {
}发布于 2020-03-09 04:21:02
我认为这个钩子应该管用:
function run_hooks( $post, $request ) {
// Here you can run your hooks
}
add_action('rest_after_insert_post', 'run_hooks', 10, 2);发布于 2020-03-09 16:31:56
我在这次令人尴尬的黑客袭击中落地。我希望有人能改进这个答案,使它不那么脆弱。或者阅读分类法来找到当前的页面和文章的端点?
$pagesajax = 'wp-json/wp/v2/pages';
$postsajax = 'wp-json/wp/v2/posts';
if(is_admin() || !empty($_SERVER['REQUEST_URI']) &&
strpos($_SERVER['REQUEST_URI'], $pagesajax) !== false ||
strpos($_SERVER['REQUEST_URI'], $postsajax) !== false)
{
... load admin side ...
}https://wordpress.stackexchange.com/questions/360279
复制相似问题