Ngày bắt đầu, ngày kết thúc, Metabox cho các sự kiện Loại bài đăng tùy chỉnh

Đoạn trích của IsItWP


Bạn có muốn thêm ba metaboxes vào các loại bài đăng tùy chỉnh sự kiện của mình không? Mặc dù có lẽ có một plugin cho việc này, chúng tôi đã tạo một đoạn mã nhanh mà bạn có thể sử dụng để thêm ngày bắt đầu, ngày kết thúc và vị trí metabox cho các loại bài đăng tùy chỉnh sự kiện.

Hướng dẫn:

Tất cả những gì bạn phải làm là thêm mã này vào tập tin chủ đề của bạn có chức năng hoặc trong một plugin dành riêng cho trang web:

hàm ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Ngày và giờ bắt đầu’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, mảng (‘id’ => ‘_khởi đầu’) );
add_meta_box (‘ept_event_date_end’, ‘Ngày kết thúc và thời gian’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, mảng (‘id’ =>’_kết thúc’) );
add_meta_box (‘ept_event_location’, ‘Vị trí sự kiện’, ‘ept_event_location’, ‘event’, ‘side’, ‘default’, mảng (‘id’ =>’_kết thúc’) );
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

hàm ept_event_date ($ post, $ args) {
$ metabox_id = $ args [‘args’] [‘id’];
$ toàn cầu, $ wp_locale;

// Sử dụng nonce để xác minh
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘dấu thời gian’);
$ tháng = get_post_meta ($ bài->ID, $ metabox_id. ‘_Month’, đúng);

if (trống ($ tháng)) {
$ tháng = gmdate (‘m’, $ time_adj);
}

$ day = get_post_meta ($ bài->ID, $ metabox_id. ‘_day’, đúng);

if (trống ($ ngày)) {
$ day = gmdate (‘d’, $ time_adj);
}

$ năm = get_post_meta ($ bài->ID, $ metabox_id. ‘_Year’, đúng);

if (trống ($ năm)) {
$ năm = gmdate (‘Y’, $ time_adj);
}

$ giờ = get_post_meta ($ bài->ID, $ metabox_id. ‘_hour’, đúng);

if (trống ($ giờ)) {
$ giờ = gmdate (‘H’, $ time_adj);
}

$ min = get_post_meta ($ bài->ID, $ metabox_id. ‘_Muteute’, đúng);

if (trống ($ min)) {
$ min = ’00’;
}

$ tháng_s = ”;
cho ($ i = 1; $ i < 13; $ i = $ i +1) {
$ tháng_s. = "\ t \ t \ t" . ”. $ wp_locale->get_month_abenamev ($ wp_locale->get_month ($ i)) . "\ n";
}
$ tháng_s. = ”;

tiếng vang $ tháng_s;
tiếng vang ”;
tiếng vang ‘@’;
tiếng vang ‘:’;
tiếng vang ”;

}

hàm ept_event_location () {
bài toàn cầu $;
// Sử dụng nonce để xác minh
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// HTML metabox
$ event_location = get_post_meta ($ bài->ID, ‘_event_location’, đúng);
tiếng vang ‘Vị trí:’;
tiếng vang ”;
}

// Lưu dữ liệu Metabox

hàm ep_eventposts_save_meta ($ post_id, $ post) {

if (được xác định (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE)
trở về;

if (! isset ($ _POST [‘ep_eventposts_nonce’]))
trở về;

if (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], plugin_basename (__FILE__)))
trở về;

// Người dùng có được phép chỉnh sửa bài đăng hoặc trang không?
if (! current_user_can (‘edit_post’, $ post->TÔI ) )
trở về;

// OK, chúng tôi đã xác thực: chúng tôi cần tìm và lưu dữ liệu
// Chúng tôi sẽ đặt nó vào một mảng để dễ dàng lặp hơn

$ metabox_ids = mảng (‘_start’, ‘_end’);

foreach ($ metabox_ids dưới dạng $ key) {
$ event_meta [$ key. ‘_Month’] = $ _POST [$ khóa. ‘_tháng’];
$ event_meta [$ key. ‘_day’] = $ _POST [$ khóa. ‘_ngày’];
if ($ _ POST [$ key. ‘_hour’]<10) {
$ event_meta [$ key. ‘_hour’] = ‘0’. $ _ POST [khóa $. ‘_Hour’];
} khác {
$ event_meta [$ key. ‘_hour’] = $ _POST [$. ‘_Hour’];
}
$ event_meta [$ key. ‘_Year’] = $ _POST [$. ‘_năm’];
$ event_meta [$ key. ‘_hour’] = $ _POST [$. ‘_Hour’];
$ event_meta [$ key. ‘_minute’] = $ _POST [$ khóa. ‘_phút’];
$ event_meta [$ key. ‘_eventtimestamp’] = $ event_meta [$ key. ‘_Year’]. $ event_meta [$ key. ‘_tháng’] . $ event_meta [$ key. ‘_ngày’] . $ event_meta [$ key. ‘_Hour’]. $ event_meta [$ key. ‘_phút’];
}

// Thêm giá trị của $ event_meta làm trường tùy chỉnh

foreach ($ event_meta là $ key => $ value) {// Chuyển qua mảng $ event_meta!
nếu ($ bài->post_type == ‘sửa đổi’) trở lại; // Không lưu trữ dữ liệu tùy chỉnh hai lần
$ value = implode (‘,’, (mảng) $ value); // Nếu $ value là một mảng, hãy biến nó thành CSV (không chắc)
if (get_post_meta ($ bài->ID, $ key, FALSE)) {// Nếu trường tùy chỉnh đã có giá trị
update_post_meta ($ bài->ID, khóa $, giá trị $);
} other {// Nếu trường tùy chỉnh không có giá trị
add_post_meta ($ bài->ID, khóa $, giá trị $);
}
if (! $ value) xóa_post_meta ($ post->ID, khóa $); // Xóa nếu để trống
}

}

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

/ **
* Người trợ giúp hiển thị ngày ở mặt trước
* /

// Nhận tháng viết tắt

chức năng eventposttype_get_the_month_abbr ($ tháng) {
toàn cầu $ wp_locale;
cho ($ i = 1; $ i < 13; $ i = $ i +1) {
nếu ($ i == $ tháng)
$ thángabbr = $ wp_locale->get_month_abenamev ($ wp_locale->get_month ($ i));
}
trả lại $ thángabbr;
}

// Hiển thị ngày

hàm eventposttype_get_the_event_date () {
bài toàn cầu $;
$ eventdate = ”;
$ tháng = get_post_meta ($ bài->ID, ‘_month’, đúng);
$ eventdate = eventposttype_get_the_month_abbr ($ tháng);
$ eventdate. = ”. get_post_meta ($ bài->ID, ‘_day’, đúng). ‘,’;
$ eventdate. = ”. get_post_meta ($ bài->ID, ‘_year’, đúng);
$ eventdate. = ‘tại’. get_post_meta ($ bài->ID, ‘_hour’, đúng);
$ eventdate. = ‘:’. get_post_meta ($ bài->ID, ‘_minute’, đúng);
echo $ eventdate;
}

Ghi chú: Nếu đây là lần đầu tiên bạn thêm đoạn mã trong WordPress, thì vui lòng tham khảo hướng dẫn của chúng tôi về Cách sao chép / dán đoạn mã đúng cách trong WordPress, vì vậy bạn không vô tình phá vỡ trang web của bạn.

Nếu bạn thích đoạn mã này, vui lòng xem xét các bài viết khác của chúng tôi trên trang web như: 15 công cụ và plugin tiếp thị nội dung tốt nhất và hơn 50 chủ đề WordPress đáp ứng tốt nhất để tạo trang web sẵn sàng cho thiết bị di động.

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