私はワードプレスとコンテンツ管理システムについてはかなり新しいです。私は始めるために2、3のチュートリアルに従ってきました。新しいカスタム投稿タイプに日付ピッカーを含める方法を特に探しています。
イベントがいつ発生するかを指定する日付をユーザーが選択できるように、ここに追加のフィールドを追加します。ユーザーが手動でテキストを使って日付を入力するのではなく、通常のhtml5の日付ピッカーであれjqueryの日付ピッカーであれ、日付ピッカーを使いたいのです。
私がこれを生成するのに使ったコードはfunctions.phpの中にあります、私はこれが私のすべてのコードを置くためのおそらく最良の場所ではないことを理解します。
/*
Custom post types
*/
function awesome_custom_post_type ()
{
$labels = array(
'name' => 'Events',
'singular_name' => 'Event',
'add_new' => 'Add Event',
'all_items' => 'All Events',
'add_new_item' => 'Add Event',
'edit_item' => 'Edit Event',
'new_item' => 'New Event',
'view_item' => 'View Event',
'search_item_label' => 'Search Events',
'not_found' => 'No Events Found',
'not_found_in_trash' => 'No Events Found in Trash',
'parent_item_colon' => 'Parent Event'
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'publicly_queryable' => false,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => true,
'supports' => array(
'title',
'editor',
'thumbnail',
),
'menu_icon' => 'dashicons-calendar-alt',
'menu_position' => 5,
'excluse_from_search' => true
);
register_post_type( 'awesome_events', $args );
}
add_action( 'init', 'awesome_custom_post_type' );
前もって感謝します。
Sunilの助けを借りて、私は自分が何をする必要があるのか正確に把握しました。
Metaboxの無料版を https://wordpress.org/plugins/meta-box/ にダウンロードしてダウンロードしました。
ダウンロードしたら、child-theme/external/metabox
に置き、child-theme/inc/events-custom-post-type.php
から参照しました。
events-custom-post-type.php
はこんな感じです。
require_once(get_stylesheet_directory() . '/external/meta-box/meta-box.php');
function custom_events ()
{
$labels = array(
'name' => 'Events',
'singular_name' => 'Event',
'add_new' => 'Add Event',
'all_items' => 'All Events',
'add_new_item' => 'Add Event',
'edit_item' => 'Edit Event',
'new_item' => 'New Event',
'view_item' => 'View Event',
'search_item_label' => 'Search Events',
'not_found' => 'No Events Found',
'not_found_in_trash' => 'No Events Found in Trash',
'parent_item_colon' => 'Parent Event'
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'publicly_queryable' => false,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => true,
'supports' => array(
'title',
'editor',
),
'menu_icon' => 'dashicons-calendar-alt',
'menu_position' => 5,
'excluse_from_search' => true
);
register_post_type( 'custom_events_post_type', $args );
}
function prefix_register_meta_boxes_events( $meta_boxes ) {
$prefix = 'custom_event_';
$meta_boxes[] = array(
'id' => $prefix . 'details',
'title' => 'Event details',
'post_types' => 'custom_events_post_type',
'context' => 'normal',
'priority' => 'high',
'fields' => array(
array(
'name' => 'Event date',
'desc' => 'Select event date',
'id' => $prefix . 'date',
'type' => 'date',
),
array (
'name' => 'Event location',
'desc' => 'Location of the event',
'id' => $prefix . 'location',
'type' => 'text'
)
)
);
return $meta_boxes;
}
add_action( 'init', 'custom_events' );
add_filter( 'rwmb_meta_boxes', 'prefix_register_meta_boxes_events' );
custom_events
関数はカスタム投稿タイプを設定し、prefix_register_meta_boxes_events
関数はカスタムフィールド日付ピッカーを設定します。
あなたはそれをprefix_register_meta_boxes_events
関数で確かめなければなりません、それはあなた自身のカスタム投稿タイプが登録されているものを追加するためにpost_types
を言います。
その後、このファイルをchild-theme/functions.php
で参照しました。
require get_stylesheet_directory() . '/inc/events-custom-post-type.php';
@vemuez
jsファイルとcssファイルをadmin_print_scriptとadmin_print_styleにエンキューする必要があります。
これを行う方法の例です。
// Register datepicker ui for properties
function admin_homes_for_sale_javascript()
{
global $post;
if($post->post_type == 'homes-for-sale' && is_admin()) {
wp_enqueue_script('jquery-ui-datepicker', WP_CONTENT_URL . '/themes/yourthemename/js/jquery-ui-datepicker.min.js');
}
}
add_action('admin_print_scripts', 'admin_homes_for_sale_javascript');
// Register ui styles for properties
function admin_homes_for_sale_styles(){
global $post;
if($post->post_type == 'homes-for-sale' && is_admin()) {
wp_enqueue_style('jquery-ui', WP_CONTENT_URL . '/themes/yourthemename/css/jquery-ui-1.8.11.custom.css');
}
}
add_action('admin_print_styles', 'admin_homes_for_sale_styles');
またはこれを試してください https://en.bainternet.info/how-i-add-a-wordpress-metabox/#toc-dn