رفتن به مطلب

نحوه حذف فیلتر parsiDate در بخشی از اسکریپت php


پست های پیشنهاد شده

سلام و وقت بخیر

 

توی یکی از صفحات قالب وردپرسی نیاز دارم که بتونم موقعی که از توابع تاریخ مربوط به خود ورپرس یا php استفاده میکنم دیگه اون تاریخ ها توسط پارسی دیت فارسی نشن (توی اون صفحه خاص فقط).

 

چیزی که به نظرم رسید این هست که احتمالا باید ابتدای اسکریپت مربوطه یه remove_filter و در انتهای اون دوباره add_filter قرار بدم. (البته اسم این فیلتر رو هم نمیدونم).

 

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

اون بخش هایی که توش تابع date فراخوانی شده مثل date('d/m/Y') ، موقعی که افزونه پارسی دیت غیرفعال هست عملکردی رو که مدنظر هست به درستی داره، منتها در صورت فعال بودن پارسی دیت مشکل ایجاد میشه.

<?php

if( ! class_exists('acf_field_persian_date_field') ) :

class acf_field_persian_date_field extends acf_field {
	
	
	function __construct() {
		
		// vars
		$this->name = 'date_picker_fa';
		$this->label = __("Persian Date Picker",'acf-persian-date-field');
		$this->category = 'jquery';
		$this->defaults = array(
			'display_format'	=> 'd/m/Y',
			'return_format'		=> 'd/m/Y',
			'first_day'			=> 6
		);

    	parent::__construct();
	}

	

	
	function render_field( $field ) {
		
		// vars
		$e = '';
		$div = array(
			
			'class'					=> 'acf-date_picker_fa acf-input-wrap',
			'data-display_format'	=> acf_convert_date_to_js($field['display_format']),
			'data-first_day'		=> $field['first_day'],
		);
		$input = array(
			'class' 				=> 'input-alt acf-date_picker_fa_db',
			'type'					=> 'hidden',
			'name'					=> $field['name'],
			'value'					=> $field['value'],
		);
			

		// html
		$e .= '<div ' . acf_esc_attr($div) . '>';
			$e .= '<input ' . acf_esc_attr($input). '/>';
			$e .= '<input type="text" value="" class="input acf-persian-date-picker" />';
		$e .= '</div>';
		
		
		// return
		echo $e;
	}
	


	function render_field_settings( $field ) {
		
		// global
		global $wp_locale;
		
		
		// display_format
		acf_render_field_setting( $field, array(
			'label'			=> __('Display format','acf'),
			'instructions'	=> __('The format displayed when editing a post','acf'),
			'type'			=> 'radio',
			'name'			=> 'display_format',
			'other_choice'	=> 1,
			'choices'		=> array(
				'd/m/Y'			=> date('d/m/Y'),
				'm/d/Y'			=> date('m/d/Y'),
				'F j, Y'		=> date('F j, Y'),
			)
		));
				
		
		// return_format
		acf_render_field_setting( $field, array(
			'label'			=> __('Return format','acf'),
			'instructions'	=> __('The format returned via template functions','acf'),
			'type'			=> 'radio',
			'name'			=> 'return_format',
			'other_choice'	=> 1,
			'choices'		=> array(
				'd/m/Y'			=> date('d/m/Y'),
				'm/d/Y'			=> date('m/d/Y'),
				'F j, Y'		=> date('F j, Y'),
				'Ymd'			=> date('Ymd'),
			)
		));
		
		
		// first_day
		/* acf_render_field_setting( $field, array(
			'label'			=> __('Week Starts On','acf'),
			'instructions'	=> '',
			'type'			=> 'select',
			'name'			=> 'first_day',
			'choices'		=> array_values( $wp_locale->weekday )
		)); */
		
	}

	
}

new acf_field_persian_date_field();

endif;

?>

 


دوستان ممنون میشم بتونید راهنمایی کنید

 

تشکر

ویرایش شده توسط kavirdarkavir
لینک به ارسال

سلام

من توی کد بالا چیزی بابت date نمیبینم.

منظورتون دقیقا کجاست؟

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...