Thickbox黑客-删除字段

时间:2012-02-18 作者:Wordpressor

默认(又大又丑)Thickbox我根本不喜欢这个Thickbox的页面外观,我几乎从来没有使用过所有这些设置字段,所以我决定去掉它们,至少在我上传图像作为主题选项的页面上。enter image description here

使用(非常)简单的Thickboxattachment_fields_to_edit &;media_upload_tabs 过滤器我让它看起来更简单:enter image description here

如果您想知道如何做到这一点(这些过滤器/挂钩解释得很糟糕),下面是代码:

function thickbox_fields($form_fields, $post){
    unset(
       $form_fields[\'post_title\'], //disables "Title" field and so forth...
       $form_fields[\'url\'] );
       $form_fields[\'image_alt\'], 
       $form_fields[\'post_excerpt\'], 
       $form_fields[\'post_content\'], 
       $form_fields[\'align\'], 
       $form_fields[\'image-size\'], 
    );

    return $form_fields;
}

function thickbox_upload_init(){
    add_filter(\'attachment_fields_to_edit\', \'thickbox_fields\', 10, 2);
}

add_action(\'admin_init\', \'thickbox_upload_init\');
不幸的是,在删除图像大小和url字段后,我不知道如何用所需的内容覆盖其值(在这种情况下,url和图像大小始终设置为“完整”)。

我正在上传基于this simple yet powerful tutorial 在管理页面上使用此代码:

jQuery(document).ready(function() {

jQuery(\'#upload_image_button\').click(function() {
 formfield = jQuery(\'#upload_image\').attr(\'name\');
 tb_show(\'\', \'media-upload.php?type=image&TB_iframe=true\');
 return false;
});

window.send_to_editor = function(html) {
 imgurl = jQuery(\'img\',html).attr(\'src\'); //imgurl is always empty after deleting url field
 jQuery(\'#upload_image\').val(imgurl);
 tb_remove();
}

});
和作为注释状态imgurl = jQuery(\'img\',html).attr(\'src\') 只是空的,另外,当我禁用图像大小而不使用url时,它的大小总是设置为“中等”,有什么办法可以解决吗?

我试图传递URL和图像大小,如下所示:

 function thickbox_fields($form_fields, $post){
        unset(
           $form_fields[\'post_title\'], //disables "Title" field and so forth...
           $form_fields[\'url\'] );
           $form_fields[\'image_alt\'], 
           $form_fields[\'post_excerpt\'], 
           $form_fields[\'post_content\'], 
           $form_fields[\'align\'], 
           $form_fields[\'image-size\'], 
        );

        $form_fields[\'url\'] = \'not sure how to get the url here, but this doesnt work anyways\';
        $form_fields[\'image-size\'] = \'full\'; //yup, this also doesn\'t work at all

        return $form_fields;
    }
我知道这些字段是数组,但是$form_fields[\'image-size\'] = array(\'size\' => \'full\'), 也不起作用。

有什么提示吗?

TL;DR - 如何从Thickbox中隐藏url和图像大小字段,然后将url字段的值发送到前端?此外,如何强制Thickbox将文件上载为“完整”,因为在图像大小未设置的情况下,它会始终返回指向中型上载的链接。

我想image\\u size\\u input\\u fields过滤器可能会有所帮助。

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

很棘手,但一旦您了解WordPress是如何设置大小和字段的,那么剩下的就很简单了:

function thickbox_fields($form_fields, $post){
    unset(
        $form_fields[\'post_title\'], //disables "Title" field and so forth...
        $form_fields[\'url\'],
        $form_fields[\'image_alt\'], 
        $form_fields[\'post_excerpt\'], 
        $form_fields[\'post_content\'], 
        $form_fields[\'align\'], 
        $form_fields[\'image-size\']
    );

    //create the size input for full only and set display to none
    $size = \'full\';
    $css_id = "image-size-{$size}-{$post->ID}";
    $html = "<div style=\'display: none;\' class=\'image-size-item\'><input type=\'radio\' name=\'attachments[$post->ID][image-size]\' id=\'{$css_id}\' value=\'{$size}\'checked=\'checked\' /></div>";
    //set as image-size field
    $form_fields[\'image-size\'] = array(
        \'label\' => \'\', //leave with no label
        \'input\' => \'html\', //input type is html
        \'html\' => $html //the actual html
    ); 

    return $form_fields;
}
首先,删除所有不需要的字段,然后模仿WordPress创建大小字段的方式,但仅将full作为所选选项,然后使用display:none

然后以WordPress接受的方式将其添加到字段数组中,正如您所看到的,它不仅是一个简单的字符串,而且是一个参数数组(标签、输入、html)

现在是真正的问题:照片中的女孩是谁???

结束

相关推荐

无法在wp-admin的自定义构建元数据中保存自定义分类术语

我创建了两个自定义分类法,即州和省,但无法将数据保存在wp admin的自定义构建元框中:<?php function custom_meta_box() { remove_meta_box( \'tagsdiv-states\', \'post\', \'side\' ); remove_meta_box( \'tagsdiv-provinces\', \'post\', \'side\' ); add_meta_box( \'t