تاریخ شروع ، تاریخ پایان ، متابوکس برای انواع ارسال های سفارشی برای رویدادها

قطعه قطعه شده توسط IsItWP


آیا می خواهید سه نوع متفاوتی از ارسال های متفاوتی به متابوکس ها اضافه کنید؟ در حالی که احتمالاً افزونه ای برای این کار وجود دارد ، ما یک قطعه کد سریع ایجاد کرده ایم که می توانید برای اضافه کردن تاریخ شروع ، تاریخ پایان و متابوکس موقعیت مکانی برای انواع پست های سفارشی از آنها استفاده کنید.

دستورالعمل ها:

تمام کاری که شما باید انجام دهید اینست که این کد را به پرونده function.php یا در یک افزونه مخصوص سایت اضافه کنید:

عملکرد ep_eventposts_metaboxes ()
add_meta_box (‘ept_event_date_start’، ‘تاریخ شروع و زمان’، ‘ept_event_date’، ‘event’، ‘side’، ‘default’، array (‘id’ => ‘_start’))؛
add_meta_box (‘ept_event_date_end’، ‘تاریخ و زمان پایان’، ‘ept_event_date’، ‘event’، ‘side’، ‘default’، array (‘id’ =>’_پایان’) )؛
add_meta_box (‘ept_event_location’، ‘محل رویداد’، ‘ept_event_location’، ‘event’، ‘side’، ‘default’، array (‘id’ =>’_پایان’) )؛
}
add_action (‘admin_init’، ‘ep_eventposts_metaboxes’)؛

// Metabox HTML

تابع ept_event_date ($ ارسال ، $ استدلال) {
$ metabolox_id = $ args [‘args’] [‘id’]؛
پست جهانی جهانی ، $ wp_locale؛

// برای تأیید از nonce استفاده کنید
wp_nonce_field (plugin_basename (__FILE__) ، ‘ep_eventposts_nonce’)؛

$ time_adj = current_time (‘timestamp’)؛
ماه $ = get_post_meta ($ ارسال)->شناسه ، $ metabolox_id. ‘_month’، true)؛

اگر (خالی (ماه دلار)) {
$ $ = gmdate (‘m’ ، $ time_adj)؛
}

$ day = get_post_meta ($ ارسال)->شناسه ، $ metabolox_id. ‘_day’ ، درست)؛

if (خالی (روز)) {
$ day = gmdate (‘d’ ، $ time_adj)؛
}

$ year = get_post_meta ($ post)->شناسه ، $ metabolox_id. ‘_ سال’ ، درست)؛

اگر (خالی (سال $)) {
$ year = gmdate (‘Y’ ، $ time_adj)؛
}

ساعت ساعت = get_post_meta ($ ارسال)->شناسه ، $ metabolox_id. ‘_ ساعت’ ، درست)؛

اگر (خالی (ساعت)) {
$ ساعت = gmdate (‘H’ ، $ time_adj)؛
}

$ min = get_post_meta ($ ارسال)->شناسه ، $ metabolox_id. ‘_minute’، true)؛

اگر (خالی ($ min)) {
$ min = ’00’؛
}

$ month_s = ”؛
برای ($ i = 1؛ $ i < 13؛ $ i = $ i +1)
$_ ماه. = "\ t \ t \ t" . “” $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i)) . "\ n"؛
}
$ month_s. = ”؛

echo month_s؛
اکو ”؛
echo ‘@’؛
echo ‘:’؛
اکو ”؛

}

عملکرد ept_event_location ()
پست جهانی $؛
// برای تأیید از nonce استفاده کنید
wp_nonce_field (plugin_basename (__FILE__) ، ‘ep_eventposts_nonce’)؛
// HTML متابوكس
$ event_location = get_post_meta ($ ارسال)->شناسه ، “_event_location” ، درست)؛
echo ‘مکان:’؛
اکو ”؛
}

// ذخیره Metabox Data

تابع ep_eventposts_save_meta ($ post_id ، $ post) {

اگر (تعریف شده (“DOING_AUTOSAVE”) && DOING_AUTOSAVE)
برگشت؛

اگر (! صادر ($ _POST [‘ep_eventposts_nonce’]))
برگشت؛

اگر (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’] ، plugin_basename (__FILE__)))
برگشت؛

// آیا کاربر مجاز به ویرایش پست یا صفحه است?
if (! current_user_can (‘edit_post’، $ post)->شناسه ) )
برگشت؛

// خوب ، ما تأیید اعتبار می کنیم: باید داده ها را پیدا و ذخیره کنیم
// ما آن را درون یک آرایه قرار می دهیم تا هر چند حلقه آن راحت تر شود

$ metabolox_ids = آرایه (‘_start’، ‘_end’)؛

foreach ($ metabolox_ids به عنوان $ کلید) {
$ Events_meta [کلید $. ‘_month’] = $ _POST [$ key. ‘_month’]؛
$ Events_meta [کلید $. ‘_day’] = $ _POST [$ کلید. ‘_day’]؛
if ($ _ POST [کلید $. ‘_ ساعت’]<10)
$ Events_meta [کلید $. ‘_hour’] = ‘0’. $ _ POST [$ key. ‘_hour’]؛
} دیگه
$ Events_meta [کلید $. ‘_hour’] = $ _POST [$ key. ‘_hour’]؛
}
$ Events_meta [کلید $. ‘_year’] = $ _POST [$ key. ‘_year’]؛
$ Events_meta [کلید $. ‘_hour’] = $ _POST [$ key. ‘_hour’]؛
$ Events_meta [کلید $. ‘_minute’] = $ _POST [$ key. ‘_minute’]؛
$ Events_meta [کلید $. ‘_eventtimestamp’] = $ Events_meta [کلید $. ‘_ سال’] $ Events_meta [کلید $. ‘_month’] $ Events_meta [کلید $. ‘_day’] $ Events_meta [کلید $. ‘_ ساعت’] $ Events_meta [کلید $. ‘_minute’]؛
}

// مقادیر $ Events_meta را به عنوان فیلدهای سفارشی اضافه کنید

foreach ($ Events_meta به عنوان $ key =)> $ ارزش) {// چرخه را در آرایه $ Events_meta بچرخانید!
اگر (پست $)->post_type == ‘تجدید نظر’) بازگشت؛ // داده های سفارشی را دو بار ذخیره نکنید
$ مقدار = implode (‘،’، (آرایه) مقدار $)؛ // اگر مقدار $ یک آرایه است ، آنرا تبدیل به CSV (بعید)
اگر (get_post_meta ($ ارسال)->شناسه ، کلید $ ، FALSE)) {// اگر قسمت سفارشی قبلاً یک مقدار دارد
update_post_meta (پست $)->شناسه ، کلید $ ، مقدار $)؛
} other {// اگر قسمت سفارشی مقدار ندارد
add_post_meta (پست $)->شناسه ، کلید $ ، مقدار $)؛
}
اگر (! مقدار $) Delete_post_meta ($ ارسال)->شناسه ، کلید $)؛ // اگر خالی باشد حذف کنید
}

}

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))؛
}
بازگرداندن $ muajabbr؛
}

// نمایش تاریخ

تابع 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. = ‘at’. get_post_meta (پست $)->شناسه ، ‘_ ساعت’ ، درست)؛
$ eventdate. = ‘:’. get_post_meta (پست $)->شناسه ، ‘_minute’ ، درست)؛
echo $ eventdate؛
}

توجه داشته باشید: اگر این اولین بار است که می توانید قطعه های کد را در وردپرس اضافه کنید ، لطفاً به راهنمای ما مراجعه کنید نحوه درست کپی / چسباندن قطعات کد در WordPress, بنابراین شما به طور تصادفی سایت خود را نمی شکنند.

اگر از این میانبر کد استقبال کرده اید ، لطفاً مقالات دیگر ما را در سایت مشاهده کنید مانند: 15 بهترین ابزار و افزونه بازاریابی محتوا و 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