mani261

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

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

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

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

0

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


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

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

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

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

 

0

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


لینک به پست

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

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' );

 

0

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


لینک به پست

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

1

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


لینک به پست

 

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

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

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

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

0

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


لینک به پست

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

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

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

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

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

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

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

1

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


لینک به پست

عالی بود :)

اولویت اکشن اصلی ۲۵ بود که طبق راهنمایی شما ۳۰ گذاشتم درست شد. بسیار سپاسگزارم.

1

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


لینک به پست

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

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

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

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


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

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

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


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