فرشاد گوهری

نحوه استفاده از رفع فیلتر پارسی دیت

8 پست در این موضوع قرار دارد

سلام دوستان، وقت بخیر

من قصد دارم فیلتر پارسی دیت رو روی یکسری از توابع موجود در قالبم غیرفعال کنم، به‌صورتی که تاریخ اون بخش‌ها به صورت میلادی و با اعداد انگلیسی نشون داده بشه.

توی تنظیمات پارسی‌دیت، گزینه‌ای هست جهت رفع فیلتر، اما نمی‌دونم دقیقا چطور باید باهاش کار کرد، من اسم تابع مورد نظرم رو داخلش نوشتم ولی غیرفعال نشد، بخشی که قصد داشتم فارسی و شمسی نشه:

  <meta itemprop="datePublished" content="<?php the_time('c'); ?>"/>
  <meta itemprop="dateModified" content="<?php the_modified_date('c'); ?>"/>

من اسم این توابع رو داخل فیلد تنظمیات پارسی‌دیت گذاشتم:

the_modified_date
the_time
 
اما فرقی نکرد.
ممنونم میشم راهنمایی کنید چطور باید از این قابلیت پارسی‌دیت استفاده کرد؟
0

به اشتراک گذاری این پست


لینک به پست

ببین نحوه غیر فعال کردن توابع به این صورت هست که شما نیاز به 3 پارامتر دارین
اول تابع وردپرس که میخواهید هوک روش غیرفعال بشه مثلا the_time
بعد اینکه این تابع the_time رو میخوادی در کجا غیر فعال کنی قطعا این تابع داره درون یک تابع یا متد فراخوانی میشه

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

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

date_i18n,display,WP_List_Table

این پارامتر میاد هوک date_i18n رو تو متد display از کلاس WP_List_Table غیر فعال میکنه
 

get_post_modified_time,,WPSEO_OpenGraph

این پارامتر میاد هوک get_post_modified_time رو تو تمام متدهای کلاس WPSEO_OpenGraph غیر فعال میکنه

2

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

در در 2/29/2020 at 11:34، Mobin گفته است :

ببین نحوه غیر فعال کردن توابع به این صورت هست که شما نیاز به 3 پارامتر دارین
اول تابع وردپرس که میخواهید هوک روش غیرفعال بشه مثلا the_time
بعد اینکه این تابع the_time رو میخوادی در کجا غیر فعال کنی قطعا این تابع داره درون یک تابع یا متد فراخوانی میشه
...

سلام، خیلی ممنونم از توضیحات کاملتون، اگه درست فهمیده باشم، مثلا تابعی که می‌خوام فیلتر رو روش غیرفعال کنم این هست: the_modified_date() که داخل تابع mom_single_post_content() از قالبم فراخوانی شده، پس مقداری که باید داخل فیلد غیرفعال‌سازی پارسی‌دیت وارد کنم تا اینجا این هست:

the_modified_date(), mom_single_post_content(),

فقط الان دوتا سوال دارم، اول اینکه کلاس اون تابع اصلی رو از کجا پیدا کنم؟ مثلا برای the_modified_date() که سرچ کردم، توی داکیومنت‌های وردپرس توضیح داده بود که مربوط به wp-includes/general-template.php هست که وقتی فایلش رو دیدم، این تابع داخل هیچ کلاسی تعریف نشده بود، بنابراین مث کد بالا باید پارامتر سوم که مربوط به کلاس بود رو خالی بذارم.

اما این خط رو هم داخل باکس پارسی‌دیت گذاشتم، ولی عمل نکرد، فک کنم اشتباه کردم یا دقیقا متوجه منظورتون نشدم، ممکنه لطف کنید کجای کارم اشتباه هست؟

یا اینکه اگر این فقط مربوط به پلاگین پارسی‌دیت نیست و یه قاعده‌ی کلی در وردپرس هست، لطف کنید بهم بگید چه کیوردی رو باید سرچ کنم، خودم میرم دنبالش (نمی‌دونم دقیقا باید چی رو به انگلیسی سرچ کنم برای غیرفعال کردنش) همه‌ی سرچ‌هام به remove_action منتهی میشد.

ویرایش شده در توسط فرشاد گوهری
0

به اشتراک گذاری این پست


لینک به پست

سلام وقت بخیر
کدتون رو باید به صورت زیر قرار بدین
 

the_modified_date, mom_single_post_content,

بدون هیچگونه پرانتزی
اگه تابع درون کلاس نیست و یک تابع مجزا هست خب قطعا پارامتر سومی(کلاس) هم نداره و بعد از کاما خالی میمونه

2

به اشتراک گذاری این پست


لینک به پست
در 20 دقیقه قبل، Mobin گفته است :

سلام وقت بخیر
کدتون رو باید به صورت زیر قرار بدین
 


the_modified_date, mom_single_post_content,

بدون هیچگونه پرانتزی
اگه تابع درون کلاس نیست و یک تابع مجزا هست خب قطعا پارامتر سومی(کلاس) هم نداره و بعد از کاما خالی میمونه

ممنونم از پیگیریتون، بله متوجه اشتباهم شدم و پرانتزها رو برداشتم، ولی همچنان کار نمی‌کنه، تصویرش رو داخل پیوست گذاشتم:

scr.png

0

به اشتراک گذاری این پست


لینک به پست

پارسی دیت کلا 8 تابع اصلی رو هوک میکنه
 

the_time
the_date
get_the_time
get_the_date
get_comment_time
get_comment_date
date_i18n
wp_date

چون پارسی دیت به تابع

the_modified_date

  هوک نمیزنه قطعا disabler شما کار نمیکنه باید ببین تابع 

 the_modified_date از کدوم یکی از این توابع استفاده میکنه
کد زیر رو قرار بدین احتمالا کار خواهد کرد(لدون space قبل یا بعد کاماها)

 

wp_date,mom_single_post_content,

 

2

به اشتراک گذاری این پست


لینک به پست
در 12 دقیقه قبل، Mobin گفته است :

پارسی دیت کلا 8 تابع اصلی رو هوک میکنه
 


the_time
the_date
get_the_time
get_the_date
get_comment_time
get_comment_date
date_i18n
wp_date

چون پارسی دیت به تابع


the_modified_date

  هوک نمیزنه قطعا disabler شما کار نمیکنه باید ببین تابع 

 the_modified_date از کدوم یکی از این توابع استفاده میکنه
کد زیر رو قرار بدین احتمالا کار خواهد کرد(لدون space قبل یا بعد کاماها)

 


wp_date,mom_single_post_content,

 

ممنونم

بله درسته، تابع the_time رو که به‌جای پارامتر اول گذاشتم، یکی از اون مواردی که می‌خواستم فیلتر روش اعمال نشه، نشد!

پس داره درست کار می‌کنه، همونطوری که فرمودید باید دنبال تابع the_modified_date بگردم.

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

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

درود خدمت همه‌ی دوستان

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

البته نمی‌دونم راهی که انجام دادم، استاندارد و اصولی هست یا نه، ولی برای من داره کار می‌کنه.

من می‌خواستم اکشن پارسی‌دیت رو روی دوتا از توابع قالبم غیرفعال کنم، اینها توابعی بودن که کدهای Structure Data رو تولید می‌کردن و به دلیل شمسی و فارسی بودن، گوگل نمی‌تونست بخونتشون و خطا میداد، به همین دلیل مجبور بودم با فرمت میلادی نمایش بدم، که برای قالب من این توابع بودند:

the_time('c')
the_modified_date('c')

که خودشون داخل یک تابع زیر فراخوانی میشدند:

mom_single_post_content()

طبق روشی که @Mobin عزیز گفتند، من برای غیرفعال شدن پارسی‌دیت، این خط کدها رو داخل فیلد پارسی‌دیت وارد کردم (با آزمون و خطا فهمیدم که این دوتا تابع مربوط به این قسمت‌هاست)

the_time,mom_single_post_content,
wp_date,mom_single_post_content,

با انجام اینکار، تابع اولی، یعنی the_time غیرفعال شد و به صورت میلادی نشون داده میشد، ولی تابع the_modified_date به جای اینکه غیرفعال بشه (تاریخ میلادی رو نشون بده) یک کاراکتر c رو توی خروجی نشون میداد، که نمی‌دونم دلیلش چی بود.

ولی نکته‌ی عجیبی که وجود داشت این بود که وقتی مستقیما توی کدهای پارسی‌دیت این فیلتر رو غیرفعال میکردم مشکل حل میشد و به‌خوبی این بخش هم تاریخش میلادی میشد، برای اینکه بتونم به شکل اصولی این فیلتر رو غیرفعال کنم، با استفاده از تابع remove_filter وردپرس غیرفعالش کردم، به این صورت:

remove_filter( 'wp_date', 'wpp_fix_i18n' );

(این کد باید داخل فانکشن پوسته‌تون قرار بگیره)

و در نهایت مشکل حل شد و فیلتر روی اون بخش‌ هم غیرفعال شد، نکته‌ای که هست اینه که با استفاده از فیلد خود پارسی‌دیت، مثل اینکه تابع رفع فیلتر روش اعمال میشد ولی به صورت ناقص (یعنی به‌جای اینکه کاملا غیرفعال شه و تاریخش میلادی شه، یه کاراکتر c میومد توی خروجی) اما وقتی کل این تابع با remove_filter غیرفعال میشد، مشکلم حل شد (البته شاید هم من اشتباه کردم و باید تابع رو روی جای دیگه‌ای غیرفعال می‌کردم)

ویرایش شده در توسط فرشاد گوهری
0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری