TL;DR : 我想没有正式完整的文档,甚至在源代码中也没有。html
在$form\\u中,如果您决定不使用提供的选项,则字段用于自定义HTML标记。
Longer Answer:
嘿@22510,我不确定我是否正确理解了你的问题,我猜你真正想知道的是,对于$form\\u字段中的特定项,数组中的强制项是什么,因为它已经存在,所以你不需要创建它,正如你在
wp-admin/includes/media.php (如WordPress 4.7.4)
这就带来了正确的答案。在这种情况下,如果没有或几乎没有文档,最好的做法是阅读源代码。但在这种情况下,没有正确记录源代码。糟糕透了。
但如果您遵循代码内部的线索,您将注意到此字段的用途。
第1216-1220行示例:
\'post_excerpt\' => array(
\'label\' => __(\'Caption\'),
\'input\' => \'html\',
\'html\' => wp_caption_input_textarea($edit_post)
),
第1236-1242行:
\'image_url\' => array(
\'label\' => __(\'File URL\'),
\'input\' => \'html\',
\'html\' => "<input type=\'text\' class=\'text urlfield\' readonly=\'readonly\' name=\'attachments[$post->ID][url]\' value=\'" . esc_attr($image_url) . "\' /><br />",
\'value\' => wp_get_attachment_url($post->ID),
\'helps\' => __(\'Location of the uploaded file.\')
)
再往下一点,第1285-1289行:
$form_fields[\'align\'] = array(
\'label\' => __(\'Alignment\'),
\'input\' => \'html\',
\'html\' => image_align_input_fields($post, get_option(\'image_default_align\')),
);
您可以看到,当您创建一个新字段时,如果您不提供
input
值,它将使用文本输入类型。如果您确实提供了如下值
\'input\' =>\'textarea\'
它将自动创建和文本,但如果
\'input\' =>\'html\'
, 然后告诉WordPress使用您将在中指定的标记
html
数组项。
所以,在媒体上。php第1219行和第1285行它们使用两个函数来创建此标记,1239只使用带有一些变量的字符串。
因此,如果要使用普通的textarea字段,则不需要html:
$form_fields[\'newfield\'] = array(
\'value\' => $field_value ? $field_value : \'\',
\'label\' => __( \'New Field\' ),
\'required\' => true,
\'input\' => \'textarea\',
\'helps\' => __( \'Help message\' )
);
但是,例如,如果您想要一个预填充了作者姓名的照片信用字段,则可以使用html作为输入键的值,并使用html键的自定义标记字符串:
$form_fields[\'credits\'] = array(
\'value\' => $field_value ? $field_value : \'\',
\'label\' => __( \'Photo Credits\' ),
\'required\' => true,
\'input\' => \'html\',
\'helps\' => __( \'Give credits where credit is due.\' ),
\'html\' => "<input type=\'text\' class=\'text credits\' name=\'attachments[$post->ID][credits]\' value=\'" . esc_attr( esc_get_the_author_meta( \'user_nicename\', $post->post_author ) ) . "\' /><br />",
);
希望这有帮助。