如何在某个管理面板页面中禁用wp过滤器

时间:2013-08-02 作者:NoviQ

我的一个过滤器正在破坏一个插件,该插件可以为类别启用特色图像。代码如下:

function html5_insert_image($html, $id, $caption, $title, $align, $url, $size, $alt) {
if (!$caption) {
    $src  = wp_get_attachment_image_src( $id, $size, false );

    $html5 = "<figure id=\'post-$id media-$id\' class=\'photoswipe align$align\'>";
    if ($url) { $html5 .= \'<a href="\'.$url.\'">\'; }
    $html5 .= \'<img src="\'.$src[0].\'" class="image" width="\'.$src[1].\'" height="\'.$src[2].\'" \';
    if ($alt) { $html5 .= \'alt="\'.$alt.\'" \'; }
    $html5 .= \'/>\';
    if ($url) { $html5 .= \'</a>\'; }
    $html5 .= "</figure>";
    return $html5;
} else {
    return $html;
}   
}
add_filter( \'image_send_to_editor\', \'html5_insert_image\', 10, 9 );
当用户位于“管理”面板的“类别管理”页面上时,是否有一种简单的方法可以完全禁用此过滤器?

1 个回复
SO网友:Krzysiek Dróżdż

我想这应该行得通:

function my_init() {
    global $pagenow;
    if ( is_admin() && $pagenow != \'edit-tags.php\' ) {
        add_filter( \'image_send_to_editor\', \'html5_insert_image\', 10, 9 );
    }
}
add_action(\'init\', \'my_init\');
还有get_current_screen 功能,这将是完美的,但。。。您可以在之后使用它admin_init 钩子和你的image_send_to_editor 我想是提前打电话了。

结束

相关推荐

Apply_Filters()和_Excerpt提供了意外的结果

我觉得我一定错过了一些显而易见的东西,但我似乎无法让WordPress合作。我正在用一个函数生成Facebook OG标签。除了摘录,一切都很好。自get_the_excerpt($post->ID), 有没有其他方法可以创建摘录而不必创建一个全新的循环?我觉得这太过分了。我的第一反应是apply_filters():$description = apply_filters(\'the_excerpt\', get_post($post->ID)->post_content);