如何在编辑附件时设置自定义字段的格式?

时间:2017-10-06 作者:Phil Gyford

我将一些自定义字段添加到附件中,大致在插件中这样做(基于this tutorial):

function myplugin_add_attachment_fields( $form_fields, $post ) {

    $fields = array(
        \'myplugin_credit\' => array(
            \'label\'         => \'Credit\',
            \'input\'         => \'text\',
            \'application\'   => \'image\',
            \'exclusions\'    => array(\'audio\', \'video\'), 
            \'helps\'         => "e.g. \'Bob Ferris\'"
        )
        // More fields here.
    );

    foreach($fields as $name => $field_data) {
        if ( preg_match( "/" . $field_data[\'application\'] . "/", $post->post_mime_type) && ! in_array( $post->post_mime_type, $field_data[\'exclusions\'] ) ) {

            $field_data[\'value\'] = get_post_meta( $post->ID, \'_\' . $name, true );

            $form_fields[$name] = $field_data;
        }
    }

    return $form_fields;
}
add_filter( \'attachment_fields_to_edit\', \'myplugin_add_attachment_fields\', 11, 2 );
这一切都很好,但编辑媒体项目时字段如下所示:

enter image description here

两个问题:

如何使标签(“信用”、“出版商”)与输入字段本身垂直对齐?

如何使输入字段与页面上的标准字段一样宽?

我确实知道如何使用CSS来实现这一点,但我不知道如何在插件中以良好的WordPress方式实现这一点。

UPDATE: 如果它对任何人都有帮助,在使用socki03的答案添加了我自己的CSS文件后,我在其中添加了以下内容来解决布局问题:

.compat-attachment-fields th.label {
    vertical-align: top;
}

.compat-attachment-fields,
.compat-attachment-fields input.text {
    width: 100%;
}

.compat-attachment-fields p.help {
    margin-top: 0.2em;
    margin-left: 5px;
}

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

您必须使用admin_enqueue_scripts. 由于您可能希望在每个页面上加载此内容,因此我将遵循Codex上的第一个示例(粘贴在此处):

function load_custom_wp_admin_style() {
        wp_register_style( \'custom_wp_admin_css\', get_template_directory_uri() . \'/admin-style.css\', false, \'1.0.0\' );
        wp_enqueue_style( \'custom_wp_admin_css\' );
}

add_action( \'admin_enqueue_scripts\', \'load_custom_wp_admin_style\' );
但不是get_template_directory 函数,您将要使用plugin_dir_url 功能,我相信。

function load_custom_wp_admin_style() {
        wp_register_style( \'custom_wp_admin_css\', plugin_dir_url(__FILE__) . \'/admin-style.css\', false, \'1.0.0\' );
        wp_enqueue_style( \'custom_wp_admin_css\' );
}

add_action( \'admin_enqueue_scripts\', \'load_custom_wp_admin_style\' );
要回答您的两个问题,标签似乎是以表格格式垂直对齐的。因此,如果是这种情况,则需要将内容垂直对齐到顶部,然后将表的宽度以及所有后续输入更改为100%或类似的值。没有检查,我只是在猜测图像。。。

结束

相关推荐