วันที่เริ่มต้น, วันที่สิ้นสุด, Metabox สำหรับประเภทโพสต์ที่กำหนดเองของกิจกรรม

ตัวอย่างโดย IsItWP


คุณต้องการเพิ่ม metaboxes สามชนิดลงในประเภทโพสต์ที่กำหนดเองของกิจกรรมหรือไม่ แม้ว่าอาจมีปลั๊กอินสำหรับสิ่งนี้ แต่เราได้สร้างข้อมูลโค้ดสั้น ๆ ที่คุณสามารถใช้เพื่อเพิ่มวันที่เริ่มต้นวันที่สิ้นสุดและสถานที่ตั้ง metabox สำหรับประเภทโพสต์ที่กำหนดเองของเหตุการณ์.

คำแนะนำ:

สิ่งที่คุณต้องทำคือเพิ่มรหัสนี้ลงในไฟล์ functions.php ของธีมของคุณหรือในปลั๊กอินเฉพาะไซต์:

ฟังก์ชัน ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘วันที่และเวลาเริ่มต้น’, ‘ept_event_date’, ‘เหตุการณ์’, ‘เหตุการณ์’, ‘ด้าน’, ‘เริ่มต้น’, อาร์เรย์ (‘id’ => ‘_start’));
add_meta_box (‘ept_event_date_end’, ‘วันที่และเวลาสิ้นสุด’, ‘ept_event_date’, ‘เหตุการณ์’, ‘เหตุการณ์’, ‘ด้าน’, ‘ค่าเริ่มต้น’, อาร์เรย์ (‘id’ =>’_end’));
add_meta_box (‘ept_event_location’, ‘สถานที่จัดกิจกรรม’, ‘ept_event_location’, ‘เหตุการณ์’, ‘ด้าน’, ‘เริ่มต้น’, อาร์เรย์ (‘id’ =>’_end’));
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

ฟังก์ชัน ept_event_date ($ โพสต์, $ args) {
$ metabox_id = $ args [‘args’] [‘id’];
$ โพสต์ทั่วโลก, $ wp_locale;

// ใช้ nonce สำหรับการตรวจสอบ
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘timestamp’);
$ month = get_post_meta ($ โพสต์->ID, $ metabox_id ‘_month’, จริง);

ถ้า (ว่างเปล่า ($ เดือน)) {
$ month = gmdate (‘m’, $ time_adj);
}

$ day = get_post_meta ($ โพสต์->ID, $ metabox_id ‘_day’, จริง);

ถ้า (ว่างเปล่า ($ วัน)) {
$ day = gmdate (‘d’, $ time_adj);
}

$ year = get_post_meta ($ โพสต์->ID, $ metabox_id ‘_year’, จริง);

ถ้า (ว่าง ($ ปี)) {
$ year = gmdate (‘Y’, $ time_adj);
}

$ hour = get_post_meta ($ โพสต์->ID, $ metabox_id ‘_hour’, จริง);

ถ้า (ว่างเปล่า ($ ชั่วโมง)) {
$ hour = gmdate (‘H’, $ time_adj);
}

$ min = get_post_meta ($ โพสต์->ID, $ metabox_id ‘_minute’, จริง);

ถ้า (ว่างเปล่า ($ ขั้นต่ำ)) {
$ min = ’00’;
}

$ month_s = ”;
สำหรับ ($ i = 1; $ i < 13; $ i = $ i +1) {
$ month_s. = "\ t \ t \ t" . ” $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i)) . "\ n";
}
$ month_s. = ”;

echo $ month_s;
echo ”;
echo ‘@’;
echo ‘:’;
echo ”;

}

ฟังก์ชัน ept_event_location () {
โพสต์ทั่วโลก $;
// ใช้ nonce สำหรับการตรวจสอบ
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// The metabox HTML
$ event_location = get_post_meta ($ โพสต์->ID, ‘_event_location’, จริง);
echo ‘Location:’;
echo ”;
}

// บันทึกข้อมูล Metabox

ฟังก์ชัน ep_eventposts_save_meta ($ post_id, $ post) {

ถ้า (กำหนดไว้ (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE)
กลับ;

if (! isset ($ _POST [‘ep_eventposts_nonce’]))
กลับ;

if (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], plugin_basename (__FILE__)))
กลับ;

// เป็นผู้ใช้ที่ได้รับอนุญาตให้แก้ไขโพสต์หรือหน้า?
if (! current_user_can (‘edit_post’, $ โพสต์->ID))
กลับ;

// ตกลงเราได้รับการรับรองความถูกต้องแล้ว: เราต้องการค้นหาและบันทึกข้อมูล
// เราจะใส่มันเข้าไปในอาเรย์เพื่อให้ง่ายต่อการวนซ้ำ

$ metabox_ids = array (‘_start’, ‘_end’);

foreach ($ metabox_ids เป็น $ key) {
$ events_meta [คีย์ $ ‘_month’] = $ _POST [$ key ‘_เดือน’];
$ events_meta [คีย์ $ ‘_day’] = $ _POST [$ key ‘_วัน’];
ถ้า ($ _ POST [$ key. ‘_hour’]<10) {
$ events_meta [คีย์ $ ‘_hour’] = ‘0’. $ _ POST [$ key ‘_ชั่วโมง’];
} อื่น {
$ events_meta [คีย์ $ ‘_hour’] = $ _POST [$ key ‘_ชั่วโมง’];
}
$ events_meta [คีย์ $ ‘_year’] = $ _POST [$ key ‘_ปี’];
$ events_meta [คีย์ $ ‘_hour’] = $ _POST [$ key ‘_ชั่วโมง’];
$ events_meta [คีย์ $ ‘_minute’] = $ _POST [$ key ‘_นาที’];
$ events_meta [คีย์ $ ‘_eventtimestamp’] = $ events_meta [$ key ‘_year’] $ events_meta [$ key ‘_month’] $ events_meta [คีย์ $ ‘_day’] $ events_meta [คีย์ $ ‘_hour’] $ events_meta [$ key ‘_นาที’];
}

// เพิ่มค่า $ events_meta เป็นฟิลด์ที่กำหนดเอง

foreach ($ events_meta เป็น $ key => $ value) {// วนรอบอาร์เรย์ $ events_meta!
ถ้า ($ โพสต์->post_type == ‘การแก้ไข’) ส่งคืน; // อย่าเก็บข้อมูลที่กำหนดเองสองครั้ง
$ value = implode (‘,’, (อาร์เรย์) $ value); // ถ้าค่า $ เป็นอาร์เรย์ให้ทำเป็น CSV (ไม่น่าจะเป็นไปได้)
ถ้า (get_post_meta ($ โพสต์)->ID, $ key, FALSE)) {// หากฟิลด์ที่กำหนดเองมีค่าอยู่แล้ว
update_post_meta ($ โพสต์->ID, $ key, $ value);
} else {// หากฟิลด์ที่กำหนดเองไม่มีค่า
add_post_meta ($ โพสต์->ID, $ key, $ value);
}
if (! $ value) delete_post_meta ($ โพสต์->ID, $ key); // ลบถ้าว่าง
}

}

add_action (‘save_post’, ‘ep_eventposts_save_meta’, 1, 2);

/ **
* ผู้ช่วยในการแสดงวันที่ส่วนหน้า
* /

// รับตัวย่อของเดือน

ฟังก์ชัน eventposttype_get_the_month_abbr ($ เดือน) {
$ wp_locale ทั่วโลก;
สำหรับ ($ i = 1; $ i < 13; $ i = $ i +1) {
ถ้า ($ i == $ เดือน)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
ส่งคืน $ monthabbr;
}

// แสดงวันที่

ฟังก์ชั่น eventposttype_get_the_event_date () {
โพสต์ทั่วโลก $;
$ eventdate = ”;
$ month = get_post_meta ($ โพสต์->ID, ‘_month’, จริง);
$ eventdate = eventposttype_get_the_month_abbr ($ เดือน);
$ eventdate. = ” get_post_meta ($ โพสต์->ID, ‘_day’, จริง) ”;
$ eventdate. = ” get_post_meta ($ โพสต์->ID, ‘_year’, จริง);
$ eventdate. = ‘ที่’ get_post_meta ($ โพสต์->ID, ‘_hour’, จริง);
$ eventdate. = ‘:’ get_post_meta ($ โพสต์->ID, ‘_minute’, จริง);
echo $ eventdate;
}

บันทึก: หากนี่เป็นครั้งแรกที่คุณเพิ่มโค้ดขนาดสั้นใน WordPress โปรดดูคำแนะนำของเราที่ วิธีการคัดลอก / วางโค้ดขนาดสั้นใน WordPress อย่างถูกต้อง, ดังนั้นคุณจะไม่ทำลายไซต์ของคุณโดยไม่ตั้งใจ.

หากคุณชอบข้อมูลโค้ดนี้โปรดลองอ่านบทความอื่น ๆ ของเราบนเว็บไซต์เช่น: 15 เครื่องมือการตลาดและปลั๊กอินที่ดีที่สุดและธีม WordPress ที่ตอบสนองได้ดีที่สุด 50+ เพื่อสร้างเว็บไซต์พร้อมมือถือ.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map