Özel Tarih Türleri için Başlangıç ​​Tarihi, Bitiş Tarihi, Meta Kutusu

Parçacıklar IsItWP


Etkinliklerinize özel yayın türleri için üç meta kutu eklemek istiyor musunuz? Bunun için muhtemelen bir eklenti olsa da, etkinlikler özel yayın türleri için başlangıç ​​tarihi, bitiş tarihi ve konum meta kutusu eklemek için kullanabileceğiniz bir hızlı kod snippet’i oluşturduk.

Talimatlar:

Tek yapmanız gereken bu kodu temanızın function.php dosyasına veya siteye özgü bir eklentiye eklemek:

işlev ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Başlangıç ​​Tarihi ve Saati’, ‘ept_event_date’, ‘olay’, ‘yan’, ‘varsayılan’, dizi (‘id’ => ‘_Başlat’) );
add_meta_box (‘ept_event_date_end’, ‘Bitiş Tarihi ve Saati’, ‘ept_event_date’, ‘olay’, ‘yan’, ‘varsayılan’, dizi (‘id’ =>’_son’) );
add_meta_box (‘ept_event_location’, ‘Olay Konumu’, ‘ept_event_location’, ‘olay’, ‘yan’, ‘varsayılan’, dizi (‘id’ =>’_son’) );
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

function ept_event_date ($ post, $ args) {
$ metabox_id = $ args [‘args’] [‘id’];
global $ post, $ wp_locale;

// Doğrulama için nonce kullanma
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘zaman damgası’);
$ month = get_post_meta ($ yayın->Kimlik, $ metabox_id. ‘_month’, true);

if (boş ($ ay)) {
$ month = gmdate (‘m’, $ time_adj);
}

$ day = get_post_meta ($ yayın->Kimlik, $ metabox_id. ‘_day’, true);

if (boş ($ gün)) {
$ day = gmdate (‘d’, $ time_adj);
}

$ yıl = get_post_meta ($ post->Kimlik, $ metabox_id. ‘_year’, true);

if (boş (yıl)) {
$ yıl = gmdate (‘Y’, $ time_adj);
}

$ saat = get_post_meta ($ yayın->Kimlik, $ metabox_id. ‘_hour’, true);

if (boş ($ saat)) {
$ saat = gmdate (‘H’, $ time_adj);
}

$ min = get_post_meta ($ yayın->Kimlik, $ metabox_id. ‘_minute’, true);

if (boş ($ min)) {
$ min = ’00’;
}

$ month_s = ”;
için ($ i = 1; $ i < 13; $ i = $ i +1) {
$ month_s. = "\ \ T \ t" . ”. $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i)) . "\ n";
}
$ month_s. = ”;

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

}

işlev ept_event_location () {
küresel $ post;
// Doğrulama için nonce kullanma
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// Metabox HTML’si
$ event_location = get_post_meta ($ gönderi->Kimlik, ‘_event_location’, true);
echo ‘Konum:’;
Eko ”;
}

// Meta Kutu Verilerini Kaydet

işlev ep_eventposts_save_meta ($ post_id, $ post) {

if (tanımlanmış (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE)
dönüş;

if (! isset ($ _POST [‘ep_eventposts_nonce’])))
dönüş;

eğer (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], plugin_basename (__FILE__)))
dönüş;

// Kullanıcının yayını veya sayfayı düzenlemesine izin veriliyor mu??
eğer (! current_user_can (‘edit_post’, $ gönderi->ID))
dönüş;

// Tamam, kimliğimiz doğrulandı: verileri bulup kaydetmemiz gerekiyor
// Döngüyü kolaylaştırmak için bir diziye koyacağız

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

foreach ($ metabox_ids $ anahtar olarak) {
$ events_meta [$ anahtarı. ‘_month’] = $ _POST [$ anahtarı. ‘_ay’];
$ events_meta [$ anahtarı. ‘_day’] = $ _POST [$ anahtarı. ‘_gün’];
eğer ($ _ POST [$ anahtar. ‘_hour’]<10) {
$ events_meta [$ anahtarı. ‘_hour’] = ‘0’. $ _ POST [$ tuşu. ‘_saat’];
} Başka {
$ events_meta [$ anahtarı. ‘_hour’] = $ _POST [$ anahtarı. ‘_saat’];
}
$ events_meta [$ anahtarı. ‘_year’] = $ _POST [$ anahtarı. ‘_yıl’];
$ events_meta [$ anahtarı. ‘_hour’] = $ _POST [$ anahtarı. ‘_saat’];
$ events_meta [$ anahtarı. ‘_minute’] = $ _POST [$ anahtarı. ‘_dakika’];
$ events_meta [$ anahtarı. ‘_eventtimestamp’] = $ events_meta [$ anahtarı. ‘_year’]. $ events_meta [$ anahtarı. ‘_month’]. $ events_meta [$ anahtarı. ‘_day’]. $ events_meta [$ anahtarı. ‘_hour’]. $ events_meta [$ anahtarı. ‘_dakika’];
}

// $ events_meta değerlerini özel alanlar olarak ekle

foreach ($ events_meta olarak $ key => $ value) {// $ events_meta dizisi arasında geçiş yap!
eğer ($ post->post_type == ‘revizyon’) dönüş; // Özel verileri iki kez saklama
$ value = implode (‘,’, (dizi) $ value); // $ değeri bir diziyse onu CSV yapın (olası değil)
eğer (get_post_meta ($ post->Kimlik, $ anahtar, YANLIŞ)) {// Özel alanın zaten bir değeri varsa
update_post_meta ($ yayın->Kimlik, $ anahtar, $ değer);
} else {// Özel alanın bir değeri yoksa
add_post_meta ($ yayın->Kimlik, $ anahtar, $ değer);
}
eğer (! $ değer) delete_post_meta ($ post->Kimlik, $ anahtar); // Boşsa sil
}

}

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

/ **
* Yardımcılar tarihi ön uçta görüntüleyebilir
* /

// Ay Kısaltmasını Alın

function eventposttype_get_the_month_abbr ($ ay) {
global $ wp_locale;
için ($ i = 1; $ i < 13; $ i = $ i +1) {
eğer ($ i == $ ay)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
return $ monthabbr;
}

// Tarihi görüntüle

function eventposttype_get_the_event_date () {
küresel $ post;
$ eventdate = ”;
$ month = get_post_meta ($ yayın->ID, ‘_month’, true);
$ eventdate = eventposttype_get_the_month_abbr ($ ay);
$ eventdate. = ”. get_post_meta ($ sonrası->Kimlik, ‘_day’, true). ”;
$ eventdate. = ”. get_post_meta ($ sonrası->Kimlik, ‘_year’, true);
$ eventdate. = ‘at’. get_post_meta ($ sonrası->Kimlik, ‘_hour’, true);
$ eventdate. = ‘:’. get_post_meta ($ sonrası->Kimlik, ‘_minute’, true);
echo $ eventdate;
}

Not: WordPress’e ilk kez kod parçacıkları ekliyorsanız, lütfen kılavuzumuza bakın. WordPress’te Kod Parçacıklarını Düzgün Kopyalama / Yapıştırma, bu yüzden yanlışlıkla sitenizi kırmazsınız.

Bu kod snippet’ini beğendiyseniz, lütfen sitede en iyi 15 içerik pazarlama aracı ve eklentisi ve mobil kullanıma hazır bir web sitesi oluşturmak için 50’den fazla duyarlı WordPress teması gibi diğer makalelere göz atın..

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