如何在Thickbox媒体集选项卡上添加自定义栏目?

时间:2012-05-31 作者:Jenny

在搜索解决方案时,我发现以下代码可在媒体页面上添加列:

add_filter ( "manage_upload_columns",  \'upload_columns\' );
add_action ( "manage_media_custom_column", \'media_custom_columns\' , 0, 2 );
结果接近我想要的结果,但我需要在thickbox gallery选项卡上实现它——我想为媒体项添加一个“包含”复选框列。

我怎样才能做到这一点?

[update]
此复选框将用作库快捷码中的“包含”部分[gallery include="23,39,45"].

但是,短代码并没有写在帖子内容中。通过主题模板为每篇文章添加图库。

[update]为了保存从brasofilo脚本中获得的ID,我在短代码行中添加了name=“include\\u id”,并添加了以下内容:

add_action( \'edit_attachment\',  array ($this,\'save_to_parent_meta\' ));

function save_to_parent_meta(){
if ( isset($_POST[\'include_ids\']) && !empty($_POST[\'include_ids\']) ) {
check_admin_referer(\'media-form\');
update_post_meta( $_REQUEST[\'post_id\'],\'include_ids\',$_POST[\'include_ids\']);
}
}
如果“includes\\u id”字段不为空,这将把id保存到父帖子的meta中。近乎完美。但是,当加载选项卡时,include\\u ids字段为空,并且取消选中all复选框。用户可能认为他们需要再次检查,即使他们不想进行更改。

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

在调查的过程中我发现了什么may be a duplicate, 但我真的不确定,因为这一个处理的是将值发送到其他地方。。。

在那里,我了解到有一个插件用于我已经编写的代码(Multiple Galleries) 它注入include 插入库时的属性。

尽管如此,一项有价值的活动和一家与StackOverflow\'呃。

应用程序将显示在“库”和“库”选项卡中
方法是复制/粘贴所选图像的值并手动使用
用法可以在自定义字段中,从中可以在某些模板页面中读取。

代码结果enter image description here

代码

add_action( \'admin_head-media-upload-popup\', \'wpse_53803_script_enqueuer\' );

function wpse_53803_script_enqueuer() 
{
    if( $_GET[\'tab\'] == \'gallery\' || $_GET[\'tab\'] == \'library\' ) 
    {
        ?>
           <style>#media-upload th.order-head {width: 5%} #media-upload th.actions-head {width: 10%}</style>
           <script type="text/javascript">
        jQuery(document).ready( function($) {
            
             /*
              * Add Input Text Field
              */
             $(\'<span>Copy this to use in the Gallery shortcode as the "include=image-ids" (<a href="http://codex.wordpress.org/Gallery_Shortcode" target="_blank">documentation</a>): </span><input type="text" id="shortcode" style="width:99%;clear:both" /><span></span><hr style="width:99%;opacity:.5" />\').prependTo(\'p.ml-submit:first\');

            /*
             * OnClick Populate/Depopulate Text Field
             */
            $(document).on(\'change\',\'input[type="checkbox"][name^="gal-item"]\',function(){
                var checkedIds = $(\'input[type="checkbox"][name^="gal-item"]:checked\').map(function(){
                    return parseInt($(this).prop(\'name\').replace(/gal-item-/,\'\'));
                }).get();

                $(\'#shortcode\').val(checkedIds.join(\',\'));
            });

            /* 
             * Iterate through the Media Items and Add a CheckBox
             */
            $(\'.filename.new\').each(function(i,e){
               var id = $(this).next(\'.slidetoggle\')
                                .find(\'thead\')
                                .attr(\'id\')
                                .replace(/media-head-/, \'\');
               var filename = $(\'<label>Add to gal-list <input type="checkbox" name="gal-item-\'+id+\'" id="gal-item-\'+id+\'" value=""  /></label>\')
                             .insertBefore($(this));
               filename.css(\'float\',\'right\').css(\'margin\',\'12px 40px 0 0\');
             });                 
          });
           </script>
        <?php
    }
}

结束

相关推荐

Gallery CSS Problem

现在,我在函数中使用一个代码来覆盖默认的WordPress gallery CSS。但出于某种原因,WP似乎只想让我在一个图库中每行放3张图片,尽管我有CSS。有人知道怎么解决这个问题吗?我的问题可以在这里找到->http://themeforward.com/demo2/features/gallery-2/ 下面是我的CSS。/*//////////////////////////////////////////////////////////////////// // Galler