Дата початку, дата закінчення, Metabox для подій Спеціальні типи публікацій

Фрагменти IsItWP


Ви хочете додати до власних типів публікацій три метабокси до своїх подій? Хоча для цього, мабуть, є плагін, ми створили швидкий фрагмент коду, який можна використовувати для додавання дати початку, дати закінчення та метабокса місцеположення для подій..

Інструкції:

Все, що вам потрібно зробити, – це додати цей код до файлу function.php своєї теми або до плагіна, призначеного для сайту:

функція ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Дата початку та час’, ‘ept_event_date’, ‘подія’, ‘сторона’, ‘за замовчуванням’, масив (‘id’ => ‘_старт’));
add_meta_box (‘ept_event_date_end’, ‘Дата та час завершення’, ‘ept_event_date’, ‘подія’, ‘сторона’, ‘за замовчуванням’, масив (‘id’ =>’_ кінець’));
add_meta_box (‘ept_event_location’, ‘Місце події’, ‘ept_event_location’, ‘подія’, ‘сторона’, ‘за замовчуванням’, масив (‘id’ =>’_ кінець’));
}
добавлення (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

функція ept_event_date ($ post, $ args) {
$ metabox_id = $ args [‘args’] [‘id’];
глобальний $ post, $ wp_locale;

// Використовувати nonce для перевірки
wp_nonce_field (ім’я плагіна (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘часова мітка’);
$ місяць = get_post_meta ($ повідомлення->ID, $ metabox_id. ‘_місяця’, правда);

якщо (порожній ($ місяць)) {
$ 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 = 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;
відлуння ”;
відлуння ‘@’;
відлуння ‘:’;
відлуння ”;

}

функція ept_event_location () {
глобальний $ пост;
// Використовувати nonce для перевірки
wp_nonce_field (ім’я плагіна (__FILE__), ‘ep_eventposts_nonce’);
// Метабокс HTML
$ event_location = get_post_meta ($ повідомлення->Ідентифікатор, ‘_event_location’, правда);
echo ‘Розташування:’;
відлуння ”;
}

// Збереження даних Metabox

функція ep_eventposts_save_meta ($ post_id, $ post) {

if (визначено (“DOING_AUTOSAVE”) && DOING_AUTOSAVE)
повернення;

if (! isset ($ _POST [‘ep_eventposts_nonce’]))
повернення;

if (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], плагін_база (__FILE__)))
повернення;

// Чи дозволено користувачеві редагувати публікацію чи сторінку?
if (! current_user_can (‘edit_post’, $ post->Ідентифікатор))
повернення;

// Добре, ми перевіряємо автентифікацію: нам потрібно знайти та зберегти дані
// Ми поставимо його в масив, щоб полегшити цикл, хоча

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

foreach ($ metabox_ids як $ ключ) {
$ events_meta [$ $. ‘_місячний’] = $ _POST [ключ $. ‘_місяця’];
$ events_meta [$ $. ‘_day’] = $ _POST [$ $. ‘_day’];
if ($ _ POST [ключ $. ‘_hour’]<10) {
$ events_meta [$ $. ‘_hour’] = ‘0’. $ _ POST [ключ $. ‘_гора’];
} else {
$ events_meta [$ $. ‘_hour’] = $ _POST [ключ $. ‘_гора’];
}
$ events_meta [$ $. ‘_року’] = $ _POST [ключ $. ‘_рік’];
$ events_meta [$ $. ‘_hour’] = $ _POST [ключ $. ‘_гора’];
$ events_meta [$ $. ‘_minute’] = $ _POST [ключ $. ‘_хвилина’];
$ events_meta [$ $. ‘_eventtimestamp’] = $ events_meta [$ $. ‘_року’]. $ events_meta [$ $. ‘_місяця’]. $ events_meta [$ $. ‘_day’]. $ events_meta [$ $. ‘_гора’]. $ events_meta [$ $. ‘_хвилина’];
}

// Додайте значення $ events_meta як спеціальні поля

foreach ($ events_meta як $ key => $ value) {// Перейдіть через масив $ events_meta!
якщо ($ пост->post_type == ‘перегляд’) повернення; // Не зберігайте власні дані двічі
$ value = implode (‘,’, (масив) $ value); // Якщо $ value є масивом, зробіть це CSV (навряд чи)
if (get_post_meta ($ пост->ID, $ ключ, FALSE)) {// Якщо у власному полі вже є значення
update_post_meta ($ пост->ID, $ ключ, $ значення);
} else {// Якщо користувацьке поле не має значення
add_post_meta ($ пост->ID, $ ключ, $ значення);
}
if (! $ value) delete_post_meta ($ post->Ідентифікатор, $ ключ); // Видалити, якщо порожнє
}

}

добавлення (‘save_post’, ‘ep_eventposts_save_meta’, 1, 2);

/ **
* Допомагає відображати дату на передній частині
* /

// Отримати скорочення місяця

функція eventposttype_get_the_month_abbr ($ місяць) {
глобальний $ wp_locale;
для ($ i = 1; $ i < 13; $ i = $ i +1) {
if ($ i == $ місяць)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
повернути $ monthabbr;
}

// Відображення дати

функція eventposttype_get_the_event_date () {
глобальний $ пост;
$ eventdate = ”;
$ місяць = get_post_meta ($ повідомлення->Ідентифікатор, ‘_місяць’, правда);
$ eventdate = eventposttype_get_the_month_abbr ($ місяць);
$ eventdate. = ”. get_post_meta ($ пост->Ідентифікатор, ‘_day’, правда). ‘,’;
$ eventdate. = ”. get_post_meta ($ пост->Ідентифікатор, ‘_року’, правда);
$ eventdate. = ‘у’. get_post_meta ($ пост->Ідентифікатор, ‘_hour’, правда);
$ eventdate. = ‘:’. get_post_meta ($ пост->ID, ‘_minute’, правда);
echo $ eventdate;
}

Примітка: Якщо ви вперше додаєте фрагменти коду в WordPress, тоді зверніться до нашого посібника на як правильно скопіювати / вставити фрагменти коду в WordPress, тому ви не випадково зламаєте свій сайт.

Якщо вам сподобався цей фрагмент коду, будь ласка, ознайомтесь із переглядом інших статей на сайті, таких як: 15 найкращих інструментів та плагінів для контентного маркетингу та 50+ найкращих тем WordPress для створення мобільного веб-сайту.

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