Как добавить несколько мета-блоков в WordPress, используя пользовательский ввод для любого поста в пользовательском типе поста?

Что я на самом деле пытаюсь сделать здесь:
— У меня есть собственный тип записи для добавления видео.
— Теперь в каждом видео пользователь может добавить несколько полей для видео, например.
— У меня есть видео, в котором будет несколько оверлеев, содержащих (заголовок, описание, кнопка, ссылка и т. Д.), И количество оверлеев полностью динамическое, поэтому пользователь должен иметь возможность установить его для каждого видео.
— Так, если пользователь говорит 5, то пользователь должен получить 5 полей title, desc, button для добавления

Я могу добавить это статически для определенной суммы, но как мне сделать это динамически.

Спасибо

0

Решение

Вы можете создавать свои собственные поля в своем плагине, это не сложно, вам просто нужно знать, что вы хотите добавить в свой тип сообщения …
Чтобы добавить свои поля, вам нужно знать jQuery, чтобы динамически добавлять больше полей …
Не нужно создавать другой плагин, потому что у вас будет много вещей, которые будут использовать …

<?php
add_meta_box( "my-new-meta", "Video Options", "metas_form", "your_post_type_name", "normal", "high")
function metas_form(  $post ){
$post_id = $post->ID;
$meta_value = get_post_meta( $post_id, 'meta_key_text', true );
?>
<div>
<label id="my_field">Name</label>
<input type="text" id="my_field" name="my_field" value="<?php echo $meta_value ?>">
</div>
<input type="hidden" name="field_nonce" id="field_nonce" value="<?php echo wp_create_nonce( plugin_basename(__FILE__) ); ?>" />
<?php
}

add_action( 'save_post', 'save_fn' );
function save_fn( ) {
global $post, $post_id, $typenow;
if ( $typenow  == 'your_post_type_name' && isset( $_POST ) ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return $post_id;

if ( !isset( $_POST['field_nonce'] ) || !wp_verify_nonce( $_POST['field_nonce'], plugin_basename(__FILE__) )) return $post_id;
$meta_value = $_POST['my_field'];
update_post_meta( $post->ID, 'meta_key_text', $meta_value );

}

}

0

Другие решения

Других решений пока нет …