Intereting Posts
Что такое comment_karma? Внесение постоянных ссылок в /% postname% / по умолчанию при установке Изменить ссылку «Назад на сайт» в wp-login.php Пользовательский короткий код, не отображающий категории и правильную дату Короткий контент по символам Как я могу сделать свой собственный плагин для отображения персонализированных метаданных на переднем конце? Есть ли способ не требовать адрес электронной почты или отключить уведомление при настройке члена? Is_single () условный тег возвращает null в запросе Как изменить Loop из плагина (вместо темы) Разбивка страниц не работает на странице Category.php Загрузите созданные пользователем данные из WordPress Можно ли ссылаться на черновики страниц? Есть ли способ сделать этот вид цикла короче и приятнее? wp_query с параметрами Как проверить, появилось ли окно загрузки из ссылки с изображенным изображением?

Создание настраиваемого типа сообщений с пользовательской таксономией и настраиваемыми полями программно

Мне нужно создать персонализированный тип сообщения. Этот тип сообщения будет иметь пользовательскую таксономию. Также этот тип сообщения будет иметь настраиваемые поля.

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

Хотя я могу создать пользовательский тип сообщения и пользовательские таксономии, я не могу найти способ создания настраиваемых полей.

  1. Тип пользовательской почты зависит от пользовательской таксономии и наоборот («Ссылка на таксономии», «Ссылка на типы сообщений»). Как я создаю их с их зависимостью между ними?
  2. Как программно создавать мои настраиваемые поля для нового типа сообщений?

Создать пользовательский тип сообщения

function create_product() { $labels = array( 'name' => _x( 'Product', 'post type general name', 'stacy' ), 'singular_name' => _x( 'product', 'post type singular name', 'stacy' ), 'menu_name' => _x( 'Products', 'admin menu', 'stacy' ), 'name_admin_bar' => _x( 'Product', 'add new on admin bar', 'stacy' ), 'add_new' => _x( 'Add New', 'product', 'stacy' ), 'add_new_item' => __( 'Add New Product', 'stacy' ), 'new_item' => __( 'New Product', 'stacy' ), 'edit_item' => __( 'Edit Product', 'stacy' ), 'view_item' => __( 'View Product', 'stacy' ), 'all_items' => __( 'All Product', 'stacy' ), 'search_items' => __( 'Search Product', 'stacy' ), 'not_found' => __( 'No Product found.', 'stacy' ), 'not_found_in_trash' => __( 'No Product found in Trash.', 'stacy' ) ); $args = array( 'labels' => $labels, 'description' => __( 'Description.', 'Add New Product on stacy' ), 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'product' ), 'has_archive' => true, 'hierarchical' => false, 'menu_position' => 100, 'menu_icon' =>'dashicons-cart', 'supports' => array( 'title', 'editor', 'author', 'thumbnail','comments','capabilities' ), 'taxonomies' => array('product_category','product_tag') ); register_post_type( 'product', $args ); } add_action( 'init', 'create_product' ); 

Создание метаданных Metabox и отображения метаданных в редакции

  function add_product_details_meta_box() { global $wpdb; global $post; $custom = get_post_custom( $post->ID ); <p> <label>Short Description:</label><br /> <textarea rows="5" name="short_description" class="width99"><?= @$custom["short_description"][0] ?></textarea> </p> <p> <label>Price:</label><br /> <input type="text" name="price" value="<?= @$custom["price"][0] ?>" class="width99" /> </p> <p> <label>Dimensions (in):</label><br /> <input type="text" name="length" value="<?= @$custom["length"][0] ?>" class="s" placeholder="Length"/> </p> <p> <label>Shipping Lead Days:</label><br /> <input type="text" name="ship_lead_days" value="<?= @$custom["product_ship_lead_days"][0] ?>" class="s" placeholder="Shipping Lead Days"/> </p> <p> <label>Commision:</label><br /> <input type="text" name="commision_broker" value="<?= @$custom["commision_broker"][0] ?>" class="s" placeholder="Enter Your Commision Here"/> </p> } add_action( 'admin_init', 'add_product_meta_boxes' ); 

Обновить сообщение Meta

 function save_product_custom_fields(){ global $post; if ( $post ) { update_post_meta($post->ID, "short_description", @$_POST["short_description"]); update_post_meta($post->ID, "price", @$_POST["price"]); update_post_meta($post->ID, "length", @$_POST["length"]); update_post_meta($post->ID,'product_ship_lead_days',@$_POST['ship_lead_days']); update_post_meta($post->ID,'commision_broker',@$_POST['commision_broker']); } } add_action( 'save_post', 'save_product_custom_fields' ); 

Пользовательский таксономический код

 add_action( 'init', 'product_category', 0 ); function product_category() { $labels = array( 'name' => _x( 'Categories', 'taxonomy general name' ), 'singular_name' => _x( 'category', 'taxonomy singular name' ), 'search_items' => __( 'Search Categories' ), 'all_items' => __( 'All Categories' ), 'parent_item' => __( 'Parent Categories' ), 'parent_item_colon' => __( 'Parent Categories:' ), 'edit_item' => __( 'Edit Categories' ), 'update_item' => __( 'Update Categories' ), 'add_new_item' => __( 'Add New Category' ), 'new_item_name' => __( 'New Category Name' ), 'menu_name' => __( 'Categories' ), ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'product_category' ), ); register_taxonomy( 'product_category', array( 'product' ), $args ); $labels = array( 'name' => _x( 'Tag', 'taxonomy general name' ), 'singular_name' => _x( 'tag', 'taxonomy singular name' ), 'search_items' => __( 'Search tag' ), 'popular_items' => __( 'Popular tag' ), 'all_items' => __( 'All tag' ), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __( 'Edit tag' ), 'update_item' => __( 'Update tag' ), 'add_new_item' => __( 'Add New tag' ), 'new_item_name' => __( 'New tag Name' ), 'separate_items_with_commas' => __( 'Separate tag with commas' ), 'add_or_remove_items' => __( 'Add or remove tags' ), 'choose_from_most_used' => __( 'Choose from the most used tags' ), 'not_found' => __( 'No tag found.' ), 'menu_name' => __( 'Tags' ), ); $args = array( 'hierarchical' => FALSE, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'update_count_callback' => '_update_post_term_count', 'query_var' => true, 'rewrite' => array( 'slug' => 'product_tag' ), ); register_taxonomy( 'product_tag', 'product', $args ); }