Intereting Posts
Многие плагины заставляют WordPress работать медленно по дизайну? Как-то добавление сообщений «Вставить в URL» противоречит друг другу Постоянная ссылка для страниц Категория и теги с тем же именем Как добавить пользовательские таблицы / конечные точки в WP REST API? Пользовательская страница пользователя Как создать случайный список дочерних страниц При разбиении страницы на страницу с тегом <! – nextpage ->, как можно настроить индивидуальный и второй стили страниц? Таксономии на страницах с пользовательским форматированием WordPress Twenty Eleven PhP – форсирование PHP-кода для пропуска первого сообщения на главной странице? Описание панели в Customizer не отображается Недопустимая тема, шаблон отсутствует Как я дезинфицирую функцию str_replace в переменных javascript Как отделить каждый отдельный блог? Переопределить плагин с помощью специальной темы

сохранить данные, введенные в Metabox в массив? для использования с / для каждого выхода.

Добрый день,

после этой страницы, чтобы успешно добавить поле Metabox на мою страницу администратора, и теперь я пытаюсь сделать это полезным для меня: https://paulund.co.uk/create-custom-meta-boxes

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

Я добавил следующее к моим functions.php:

// Lets get meta function add_embed_recipe_meta_box() { add_meta_box( 'embed_recipe_meta_box', // $id 'Recipe Post meta box', // $title 'show_embed_recipe_meta_box', // $callback 'post', // $page 'normal', // $context 'high'); // $priority } add_action('add_meta_boxes', 'add_embed_recipe_meta_box'); // Show the meta box in admin function show_embed_recipe_meta_box() { global $post; $meta = get_post_meta($post->ID, 'recipe_embed', true); // use nonce for verification echo '<input type="hidden" name="custom_meta_box_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />'; echo '<table class="form-table">'; echo '<tr> <th><label for="recipe_embed">Ingredients</label></th> <td><textarea name="recipe_embed" id="recipe_embed" cols="60" rows="1">'.$meta.'</textarea></td> </tr>'; echo '</table>'; } // Save the meta data function save_recipe_embed($post_id) { // verify nonce if (!wp_verify_nonce($_POST['custom_meta_box_nonce'], basename(__FILE__))) return $post_id; // check autosave if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; // check permissions if ('page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) return $post_id; } elseif (!current_user_can('edit_post', $post_id)) { return $post_id; } $old = get_post_meta($post_id, "recipe_embed", true); $new = $_POST["recipe_embed"]; if ($new && $new != $old) { update_post_meta($post_id, "recipe_embed", $new); } elseif ('' == $new && $old) { delete_post_meta($post_id, "recipe_embed", $old); } } add_action('save_post', 'save_recipe_embed'); 

и вызовите метаданные, используя этот код:

 <?php $recipe_embed = get_post_meta($post->ID, "recipe_embed", true); if($recipe_embed != ""){ //content for true if statement below ?> <div style ="background: green;"> <?php echo $recipe_embed; //this is the content of the value ?> </div> <?php } //close the if statement ?> 

он отлично работает, чтобы добавить одно поле в мой Metabox и отображать эти данные позже, но я потерялся, пытаясь добавить массив к вводу. любой совет получил высокую оценку. или альтернативные лучшие способы выполнения одной и той же задачи 🙂

благодаря!

Вы можете использовать то, что у вас есть, с небольшими изменениями. Просто увеличьте высоту мета-окна и позвольте своим пользователям вводить элемент в каждую строку.

встраивать

 $recipe_embed = get_post_meta( $post->ID, "recipe_embed", true ); if ( ! empty( $recipe_embed ) ): ?> <div style="background: green;"> <?php // normalize returns $recipe_embed = str_replace( "\n", "\r", $recipe_embed ); // convert to array and remove empty items $ingredients = array_filter( explode( "\r", $recipe_embed ) ); // list items echo "<ul class='ingredients'>"; foreach ( $ingredients as $ingredient ) { echo "<li class='ingredient' >$ingredient</li>"; } echo "</ul>"; ?> </div> <?php endif; // $recipe_embed 

Мета-бокс

 <?php function add_embed_recipe_meta_box() { add_meta_box( 'embed_recipe_meta_box', // $id 'Recipe Post meta box', // $title 'show_embed_recipe_meta_box', // $callback 'post', // $page 'normal', // $context 'high' ); } add_action( "add_meta_boxes", "add_embed_recipe_meta_box" ); function show_embed_recipe_meta_box( $post ) { $meta = get_post_meta( $post->ID, 'recipe_embed', true ); wp_nonce_field( basename( __FILE__ ), "recipe-meta-box-nonce" ); ?> <table class="form-table"> <tr> <th><label for="recipe_embed">Ingredients</label></th> <td><textarea name="recipe_embed" id="recipe_embed" cols="60" rows="10"><?php echo $meta; ?></textarea></td> </tr> </table> <?php } function save_recipe_embed( $post_id, $post, $update ) { if ( ! isset( $_POST[ "recipe-meta-box-nonce" ] ) || ! wp_verify_nonce( $_POST[ "recipe-meta-box-nonce" ], basename( __FILE__ ) ) ) { return $post_id; } if ( ! current_user_can( "edit_post", $post_id ) ) { return $post_id; } if ( defined( "DOING_AUTOSAVE" ) && DOING_AUTOSAVE ) { return $post_id; } $slug = "post"; if ( $slug != $post->post_type ) { return $post_id; } $recipe_embed = ''; if ( isset( $_POST[ "recipe_embed" ] ) ) { $recipe_embed = $_POST[ "recipe_embed" ]; } update_post_meta( $post_id, "recipe_embed", $recipe_embed ); } add_action( "save_post", "save_recipe_embed", 10, 3 );