Data rozpoczęcia, data zakończenia, metaboks dla zdarzeń Niestandardowe typy postów

Fragmenty autorstwa IsItWP


Czy chcesz dodać trzy metaboksy do swoich niestandardowych typów postów? Chociaż jest do tego prawdopodobnie wtyczka, stworzyliśmy krótki fragment kodu, którego można użyć do dodania daty rozpoczęcia, daty zakończenia i metaboksu lokalizacji dla niestandardowych typów postów.

Instrukcje:

Wszystko, co musisz zrobić, to dodać ten kod do pliku functions.php motywu lub we wtyczce specyficznej dla witryny:

funkcja ep_eventposts_metaboxes () {
add_meta_box („ept_event_date_start”, „Data i godzina rozpoczęcia”, „ept_event_date”, „event”, „side”, „default”, tablica („id” => ‘_początek’) );
add_meta_box („ept_event_date_end”, „Data i godzina zakończenia”, „ept_event_date”, „event”, „side”, „default”, tablica („id” =>’_koniec’) );
add_meta_box (‘ept_event_location’, ‘Event Event’, ‘ept_event_location’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_koniec’) );
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

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

// Użyj nonce do weryfikacji
wp_nonce_field (nazwa_podstawy wtyczki (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = bieżący_czas („znacznik czasu”);
$ miesiąc = get_post_meta ($ post->ID, $ metabox_id. „_miesiąc”, prawda);

if (pusty (miesiąc miesiąca)) {
$ miesiąc = gmdate (‘m’, $ time_adj);
}

$ dzień = get_post_meta ($ post->ID, $ metabox_id. „_day”, prawda);

if (pusty ($ dzień)) {
$ day = gmdate (‘d’, $ time_adj);
}

$ rok = get_post_meta ($ post->ID, $ metabox_id. „_year”, true);

if (pusty (rok rok)) {
$ rok = gmdate („Y”, $ time_adj);
}

$ godzina = get_post_meta ($ post->ID, $ metabox_id. „_godzina”, prawda);

if (pusty (godzina za godzinę)) {
$ godzina = gmdate („H”, $ time_adj);
}

$ min = get_post_meta ($ post->ID, $ metabox_id. „_minute”, true);

if (pusty ($ min)) {
$ min = „00”;
}

$ month_s = ”;
dla ($ i = 1; $ i < 13; $ i = $ i +1) {
$ miesiąc_s. = "\ t \ t \ t" . ”. $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i)) . "\ n";
}
$ month_s. = ”;

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

}

funkcja ept_event_location () {
globalny $ post;
// Użyj nonce do weryfikacji
wp_nonce_field (nazwa_podstawy wtyczki (__FILE__), ‘ep_eventposts_nonce’);
// Metabox HTML
$ event_location = get_post_meta ($ post->ID, „_event_location”, true);
echo „Lokalizacja:”;
Echo ”;
}

// Zapisz dane Metabox

funkcja ep_eventposts_save_meta ($ post_id, $ post) {

if (zdefiniowano („DOING_AUTOSAVE”) && DOING_AUTOSAVE)
powrót;

if (! isset ($ _POST [‘ep_eventposts_nonce’]))
powrót;

if (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], nazwa bazy danych wtyczki (__FILE__)))
powrót;

// Czy użytkownik może edytować post lub stronę?
if (! current_user_can (‘edit_post’, $ post->ID ) )
powrót;

// OK, jesteśmy uwierzytelnieni: musimy znaleźć i zapisać dane
// Umieścimy go w tablicy, aby ułatwić zapętlenie

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

foreach ($ metabox_ids jako $ key) {
$ events_meta [$ klucz. „_month”] = $ _POST [$ key. ‘_miesiąc’];
$ events_meta [$ klucz. „_day”] = $ _POST [klucz $. ‘_dzień’];
if ($ _ POST [$ key. ‘_hour’]<10) {
$ events_meta [$ klucz. „_hour”] = „0”. $ _ POST [$ key. ‘_godzina’];
} else {
$ events_meta [$ klucz. „_hour”] = $ _POST [$ key. ‘_godzina’];
}
$ events_meta [$ klucz. „_year”] = $ _POST [$ key. ‘_rok’];
$ events_meta [$ klucz. „_hour”] = $ _POST [$ key. ‘_godzina’];
$ events_meta [$ klucz. „_minute”] = $ _POST [$ key. ‘_minuta’];
$ events_meta [$ klucz. „_eventtimestamp”] = $ events_meta [$ key. ‘_rok’] . $ events_meta [$ klucz. „_month”]. $ events_meta [$ klucz. „_day”]. $ events_meta [$ klucz. ‘_godzina’] . $ events_meta [$ klucz. ‘_minuta’];
}

// Dodaj wartości $ events_meta jako pola niestandardowe

foreach ($ events_meta as $ key => $ value) {// Przełączanie między tablicą $ events_meta!
if ($ post->post_type == ‘rewizja’) return; // Nie przechowuj danych niestandardowych dwa razy
$ wartość = implode (‘,’, (tablica) $ wartość); // Jeśli wartość $ jest tablicą, zmień ją na CSV (mało prawdopodobne)
if (get_post_meta ($ post->ID, $ key, FALSE)) {// Jeśli pole niestandardowe ma już wartość
update_post_meta ($ post->Identyfikator, klucz $, wartość $);
} else {// Jeśli pole niestandardowe nie ma wartości
add_post_meta ($ post->Identyfikator, klucz $, wartość $);
}
if (wartość! $) delete_post_meta ($ post->ID, klucz $); // Usuń, jeśli jest puste
}

}

działanie dodatkowe („save_post”, „ep_eventposts_save_meta”, 1, 2);

/ **
* Pomocnicy wyświetlający datę na interfejsie
* /

// Uzyskaj skrót miesiąca

funkcja eventposttype_get_the_month_abbr ($ miesiąc) {
globalny $ wp_locale;
dla ($ i = 1; $ i < 13; $ i = $ i +1) {
jeśli ($ i == $ miesiąc)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
zwraca $ monthabbr;
}

// Wyświetl datę

funkcja eventposttype_get_the_event_date () {
globalny $ post;
$ eventdate = ”;
$ miesiąc = get_post_meta ($ post->ID, „_month”, true);
$ eventdate = eventposttype_get_the_month_abbr ($ miesiąc);
$ eventdate. = ”. get_post_meta ($ post->ID, „_day”, true). „,”;
$ eventdate. = ”. get_post_meta ($ post->ID, „_year”, true);
$ eventdate. = ‘at’. get_post_meta ($ post->ID, „_hour”, true);
$ eventdate. = ‘:’. get_post_meta ($ post->ID, „_minute”, true);
echo $ eventdate;
}

Uwaga: Jeśli po raz pierwszy dodajesz fragmenty kodu w WordPress, zapoznaj się z naszym przewodnikiem na temat jak poprawnie skopiować / wkleić fragmenty kodu w WordPress, więc nie przypadkowo zepsułeś swoją witrynę.

Jeśli podobał Ci się ten fragment kodu, zapoznaj się z naszymi innymi artykułami na stronie, takimi jak: 15 najlepszych narzędzi do marketingu treści i wtyczek oraz ponad 50 najlepiej reagujących motywów WordPress, aby utworzyć witrynę przystosowaną do urządzeń mobilnych.

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