自动关闭(隐藏)自定义元数据/设置默认状态

时间:2013-04-03 作者:l2aelba

我正在使用WordPress函数add_meta_box() 添加我自己的自定义元数据库。

那么,如何在打开页面时自动关闭/隐藏?

目前,我只添加了一个CSS类closed 至metabox<div> 通过jQuery的元素,如下所示:

HTML : (示例)

<div id="my_metabox" class="postbox"></div>

jQuery :

$("#my_metabox.postbox").addClass("closed");
但是有没有一个WordPress函数可以做到这一点?

3 个回复
最合适的回答,由SO网友:Ralf912 整理而成

钩入postbox_classes. postbox_classes 是将输出元数据库类的函数。

apply_filters( "postbox_classes_{$page}_{$id}", $classes )
您的代码可能如下所示:

add_action( \'add_meta_boxes\', \'add_my_metabox\' );

function add_my_metabox() {
  $id       = \'my-metabox\';
  $title    = \'My Metabox\';
  $callback = \'my_metabox_content\';
  $page     = \'post\';

  add_meta_box( $id, $title, $callback, $page );

  add_filter( "postbox_classes_{$page}_{$id}", \'minify_my_metabox\' );
}

function my_metabox_content() { ... }


/*
 * $classes is an array
 */
function minify_my_metabox( $classes ) {
  if ( isset( $_POST[\'my_condition\'] ) && \'my_condition\' == $_POST[\'my_condition\'] ) {
    array_push( $classes, \'closed\' );
  }

  return $classes;
}

SO网友:Johannes Pille

WP也通过JS来切换元数据库的打开/关闭状态——显然是这样,因为它发生在他/她的浏览器的客户端。

执行此操作的脚本通过句柄\'postbox\' *

该脚本与手动执行的操作相同(添加closed 类关闭元数据库)。此外,它还通过if(e.hasClass("closed")).
因此,您设置默认状态的方式完全正确。

* 顺便说一句:如果您在自定义管理页面上需要此功能,这就是需要排队的内容(wp_enqueue_scripts( \'postbox\' ); )

SO网友:Dragi Postolovski

编辑帖子时,第一个钩子将激发。添加新帖子时的第二个钩子。此代码将自动关闭SEO元框。

add_action( \'admin_head-post.php\', \'closed_fields_meta_boxes_admin_head\' );
add_action( \'admin_head-post-new.php\',  \'closed_fields_meta_boxes_admin_head\' );
function closed_fields_meta_boxes_admin_head() {
    ?>

    <script type="text/javascript">
        (function($){
            $(document).ready(function(){
                $(\'#wpseo_meta\').addClass(\'closed\');
            });
        })(jQuery);
    </script>

    <?php
}

结束

相关推荐

在Add Post Metabox中自定义WordPress Media Upload和New Media Manager菜单

我在metabox中使用Wordpress Media Upload(<;3.5)和Media Manager(>=3.5)作为上载字段,并且需要自定义菜单,以便它们只具有上载和媒体库功能,而不具有“从URL”/“从URL插入”和“创建库”。所以我需要移除它们。我无法使用中提到的Wordpress筛选器this solution, 因为我在metabox中使用它,它存在于Wordpress的新帖子页面中,该页面已经具有“添加媒体”功能,如果我使用这样的过滤器,它将被破坏。是否有任何通过Javas