从媒体上传器/库中删除字段

时间:2012-03-14 作者:Jonas Thomsen

我一直在到处寻找答案。

我只想从uploader和gallery视图中删除备用文本、标题、描述和链接URL字段。

我觉得除了这个媒体的东西以外,所有的东西都可以删除。

感谢您的帮助:)

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

您可以通过过滤器来完成此操作。将以下内容添加到函数中。php。您也可以通过这种方式添加自己的字段。。。

// edit fields in media upload area
add_filter(\'attachment_fields_to_edit\', \'remove_media_upload_fields\', 10000, 2);
function remove_media_upload_fields( $form_fields, $post ) {

    // remove unnecessary fields
    unset( $form_fields[\'image-size\'] );
    unset( $form_fields[\'post_excerpt\'] );
    unset( $form_fields[\'post_content\'] );
    unset( $form_fields[\'url\'] );
    unset( $form_fields[\'image_url\'] );
    unset( $form_fields[\'align\'] );

    return $form_fields;
}
上面的例子去掉了超出您需要的部分,但如果您执行print_r()$form_fields 变量,您将看到可添加/删除的内容。

SO网友:funwhilelost

不幸的是,在WP3中,这种情况似乎发生了很大的变化。5当他们升级媒体库时。该过滤器的$form\\u fields参数不再包含默认值。到目前为止,我找到的唯一解决方案是使用缓冲从视图中强制删除标记:

这是非常脆弱的-对WordPress核心的任何更改都可能破坏这一点

function wpse45562_remove_media_fields( $buffer ) {
    // remove the \'caption\' block
    $buffer = preg_replace( \'~<p>\\s*<label\\s*for="attachment_caption">.*?</p>~ims\', \'\', $buffer );
    // remove the \'alt text\' block
    $buffer = preg_replace( \'~<p>\\s*<label\\s*for="attachment_alt">.*?</p>~ims\', \'\', $buffer );

    // remove the \'description\' box (and label separately)
    $buffer = preg_replace( \'~<div\\s*id="wp-attachment_content-editor.*?</div>~ims\', \'\',   $buffer );
    $buffer = preg_replace( \'~<label\\s*for="content">.*?</label>~ims\', \'\', $buffer );

    return $buffer;
}

function wpse45562_media_strip_buffer_start() { ob_start("wpse45562_remove_media_fields");  }
function wpse45562_media_strip_buffer_end() { ob_end_flush(); }

add_action(\'admin_head\', \'wpse45562_media_strip_buffer_start\', 10, 1);
add_action(\'admin_footer\', \'wpse45562_media_strip_buffer_end\', 10, 1);

SO网友:Jake

自WP 3.5以来,最简单的方法就是使用CSS删除字段:

add_action(\'admin_head\', \'custom_remove_attachment_fields\');
function custom_remove_attachment_fields() {
    ?><style type=\'text/css\'>
        .attachment-info .setting.has-description,/* Alternative Text */
        .attachment-info #alt-text-description,/* Alternative Text description */
        .attachment-info .setting[data-setting="title"],
        .attachment-info .setting[data-setting="caption"],
        .attachment-info .setting[data-setting="description"],
        .attachment-info .setting[data-setting="url"],
        .attachment-info .media-types.media-types-required-info /* Required info */ {
            display: none;
        }
    </style><?php
}
这主要关注图像,但您可以添加任何内容。。。

SO网友:Feel The Noise

sanchothefat的回答是正确的,真的很有魅力。

为了增加他的答案,你可以使用unset( $form_fields[\'image_alt\'] ); 删除备用文本。

谢谢你回答sanchothefat,这对我很有帮助。

结束

相关推荐

wp-admin page is blank

我的wp管理页面有问题,它只是显示为空白。我很确定这与我的功能有关。php文件顶部或底部没有空格,但当我完全删除它时,wp admin文件夹再次工作。下面是函数。php文件<?php add_action(\"manage_posts_custom_column\", \"booktime_custom_columns\"); add_filter(\"manage_edit-booktime_columns\", \"booktime_edit_columns\");&