Intereting Posts
Как создать пользовательский тип сообщения / example /, а затем posts /example/posts.html Как настроить общий контент между основным сайтом и субдоменом? Сделать пользовательскую user_meta постоянной ссылкой для сообщения Получение текущего идентификатора сообщения в functions.php Как заблокировать действие, если сообщение «грязно»? Дублирующая проблема после бесконечной загрузки Лучший способ переместить сайт в подпапку для целей тестирования? отключить активные плагины для определенной темы синтаксическая ошибка – woocommerce Обновление таксономии сообщений, автоматически основанных на дате С какими проблемами вы столкнетесь, если используете Nginx Как использовать инструмент обрезки эскизов Невозможно отредактировать пользовательский тип сообщения / постоянная ссылка Устранить параметры из перенаправления Пагинация только не будет работать в шаблоне автора

Сообщение «Представление из интерфейса с пользовательским полем не работает»

Я работаю с отправкой сообщений, которые имеют специальные поля. Я использовал shortcode API для использования формы на любой странице / сообщении. Код должен быть указан ниже. Но после отправки формы ничего не произошло, и форма возвращается. Мне нужна твоя помощь.

<?php //Shortcode API function apl_video(){ global $current_user; get_currentuserinfo(); if (!isset($_POST['submit'])) { ?> <form name="new_post" method="post" action=""> <table border="0" align="center"> <tr><td><label for="id_meta">Video Title</label></td><td><input id="post_title" tabindex="1" type="text" name="post_title"/></td></tr> <tr><td><label for="vid_wid">Video Width</label></td><td><input id="vid_wid" tabindex="2" type="text" name="vid_wid"/></td></tr> <tr><td><label for="vid_hei">Video Height</label></td><td><input id="vid_hei" tabindex="3" type="text" name="vid_hei"/></td></tr> <tr><td><label for="vid_ply">Autoplay</label></td><td><select tabindex="4" name="vid_ply" id="vid_ply"> <option value="Yes">Yes</option> <option value="No">No</option> </select> </td></tr> <tr><td><label for="vid_ski">Skin</label></td><td><select tabindex="5" name="vid_ski" id="vid_ski"> <option value="player1">Player 1</option> <option value="player2">Player 2</option> </select> </td></tr> <tr> <td><label for="vid_you">Youtube Video Link</label></td> <td><input id="vid_you" tabindex="6" type="text" name="vid_you"/></td> </tr> <tr> <td><label for="vid_mp4">MP4 Video Link</label></td> <td><input id="vid_mp4" tabindex="7" type="text" name="vid_mp4"/></td> </tr> <tr> <td><label for="vid_ogg">OGG Video Link</label></td> <td><input id="vid_hei" tabindex="8" type="text" name="vid_ogg"/></td> </tr> <tr> <td><label for="vid_web">WEBM Video Link</label></td> <td><input id="vid_hei" tabindex="9" type="text" name="vid_web"/></td> </tr> <tr> <td><label for="vid_pst">Poster Image Link</label></td> <td><input id="vid_hei" tabindex="10" type="text" name="vid_pst"/></td> </tr> <tr> <td>&nbsp;</td> <?php wp_nonce_field( 'new-post' ); ?> <td><input type="submit" value="Generate" name="submit"/></td> </tr> </table> </form> <?php } else { $title = esc_attr($_POST['post_title']); $vid_wid = esc_attr($_POST['vid_wid']); $vid_hei = esc_attr($_POST['vid_hei']); $vid_ply = esc_attr($_POST['vid_ply']); $vid_ski = esc_attr($_POST['vid_ski']); $vid_you = esc_attr($_POST['vid_you']); $vid_mp4 = esc_attr($_POST['vid_mp4']); $vid_web = esc_attr($_POST['vid_web']); $vid_ogg = esc_attr($_POST['vid_ogg']); $vid_pst = esc_attr($_POST['vid_pst']); global $user_ID; $new_post = array( 'post_title' => $title, 'post_status' => 'publish', 'post_type' => 'video', 'post_date' => date('Ymd H:i:s'), 'post_author' => $user_ID, ); //save the new post $pid = wp_insert_post($new_post); // Do the wp_insert_post action to insert it do_action('wp_insert_post', 'wp_insert_post'); add_post_meta($pid, 'vid_wid', $vid_pst, true); add_post_meta($pid, 'vid_hei', $vid_hei, true); add_post_meta($pid, 'vid_ply', $vid_ply, true); add_post_meta($pid, 'vid_ski', $vid_ski, true); add_post_meta($pid, 'vid_you', $vid_you, true); add_post_meta($pid, 'vid_ogg', $vid_ogg, true); add_post_meta($pid, 'vid_web', $vid_web, true); add_post_meta($pid, 'vid_mp4', $vid_mp4, true); add_post_meta($pid, 'vid_pst', $vid_pst, true); //Result echo 'Done'; } } add_shortcode( 'wpvideogen', 'apl_video' ); 

Solutions Collecting From Web of "Сообщение «Представление из интерфейса с пользовательским полем не работает»"

Ваш код отлично работает для меня как есть, если у вас действительно есть тип video , однако есть несколько вещей, которые вы можете исправить –

  1. shortcodes должны return свое значение, иначе вы увидите, что контент короткого кода отображается перед любым контентом, а не там, где вы действительно разместили короткий код.

  2. do_action('wp_insert_post', 'wp_insert_post'); не wp_insert_post , wp_insert_post уже выполняет это действие внутри функции, поэтому вы вызываете его дважды.