我将一些自定义字段添加到附件中,大致在插件中这样做(基于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 );
这一切都很好,但编辑媒体项目时字段如下所示:
两个问题:
如何使标签(“信用”、“出版商”)与输入字段本身垂直对齐?
如何使输入字段与页面上的标准字段一样宽?
我确实知道如何使用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;
}
最合适的回答,由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%或类似的值。没有检查,我只是在猜测图像。。。