رفتن به مطلب

مشکل در بازنویسی توابع قالب اصلی در Child Theme


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

قصد دارم توی Child Theme یکسری توابعی رو بازنویسی کنم که توی فایل‌های اصلی قالب (مثل فوتر) نیست که بشه به سادگی کپی پیست و بازنویسی کرد بلکه در فایلهای داخلی مثلاً در فولدر library قرار داره و قابل بازنویسی عادی نیست.
از روش این راهنما و تابع
remove_action
هم استفاده کردم ولی انجام نشد. یعنی هم نتیجه تابع قالب اصلی ظاهر می‌شه و هم نتیجه تابع فرزند. من می‌خوام تابع اصلی کلاً اجرا نشه.

کسی ایده‌ای در این مورد داره؟
 

لینک به ارسال
در 2 ساعت قبل، pctricks گفته است :

یک اکشن درست کن و جاهایی را که می خواهید آن تابع اجرا شود با فراخوانی اکشن آن تابع را صدا بزنید.

همین کار رو کردم و اکشن من اجرا می‌شه. هدف اینه که اکشن قالب اصلی اجرا نشه. بابتش هم این کد رو نوشتم ولی باز اجرا می‌شه:

function child_remove_parent_function() {
    remove_action( 'cleanretina_footer', 'cleanretina_footer_info' );
}
add_action( 'init', 'child_remove_parent_function' );

 

لینک به ارسال

خب من کد روطبق راهنمایی شما به این شکل نوشتم ولی باز هم تابع والد اجرا می‌شه :(

function child_remove_parent_function() {
    remove_action( 'cleanretina_footer', 'cleanretina_footer_info' );
    add_action( 'cleanretina_footer', 'childtheme_footer_info' );
}

add_action( 'after_setup_theme', 'child_remove_parent_function' );

 

لینک به ارسال

remove_action  رو توی functions.php قالب اصلی اجرا کنید این فایل همیشه به فایلهای دیگه اولویت داره ترجیحا بعد از اینکلود فایلهای library قرارش بدید

لینک به ارسال

 

در 40 دقیقه قبل، imanfakhar گفته است :

remove_action  رو توی functions.php قالب اصلی اجرا کنید این فایل همیشه به فایلهای دیگه اولویت داره ترجیحا بعد از اینکلود فایلهای library قرارش بدید

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

با تغییر اولویت اجرای اکشن هم نتونستم کنترلش کنم.

لینک به ارسال

سه تا پارامتر تو remove_action هست که باید رعایت بشه 

اول نام هوکی که اکشن بهش زده شده

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

و سوم پوزیشن اکشنه که در واقع عدد اولویت زمانیه اکشنه

function child_remove_parent_function() {
    remove_action( 'cleanretina_footer', 'cleanretina_footer_info', 5 );
 
}

add_action( 'init', 'child_remove_parent_function',15 );
 

اگر عدد سوم رو نمی دونید تنها راهش همون فانکشنز اصلیه (یا آزمون و خطا تا رسیدن به عدد بالاتر)

لینک به ارسال

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

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

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

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

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

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

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

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

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