Вот такая засада.
В родительской теме определен ряд хуков, которые мешают мне и хочется их удалить в дочерней теме.
Логично предположить что нужно просто вставить remove_action или remove_filter в function.php дочерней темы.
Но не тут то было!
Это не работает.
Как оказывается, function.php дочерней темы грузится перед тем же файлом родительской темы. И если использовать обычную схему, то получится что попытка удаления хука произойдет перед его добавлением. Что как мы знаем по кодексу оказывается безрезультатным.
Таким образом нам нужно добиться ситуации, когда удаление хука произойдет после его определения.
Как это сделать?
Все очень просто 🙂 Нужно удаление хука зацепить на более поздний хук, который выполнится после определения хука родительской темы. О как 🙂
Но все просто. Самый элементарный хук init вполне нам подойдет.
И делаем так:
add_action('init','removeOldFunction'); function removeOldFunction(){ remove_action( 'template_redirect', 'alienship_nice_search_redirect' ); }
Этим кодом мы удалим хук alienship_nice_search_redirect, который определен в родительской теме, при помощи function.php дочерней.
Проверено 🙂
Все хорошо, пока дело не касается сайдбара. Там хук инициализации виджетов работает еще позднее чем init, потому нужно вешаться на хук after_setup_theme.
Ну и в других случаях. Удаляя тот или иной хук не забудьте проверить его порядок загрузки и убедиться что он грузится позднее, чем тот который вы удаляете.
Здравствуйте.
Подскажите, пожалуйста.
В моей теме при загрузке фото, создаются дубли этой фотографии с указанными размерами. Реализуется это в файле function.php с помощью следующего кода:
/* Theme setup
/* ———————————— */
if ( ! function_exists( ‘alx_setup’ ) ) {
function alx_setup() {
// Enable automatic feed links
add_theme_support( ‘automatic-feed-links’ );
// Enable featured image
add_theme_support( ‘post-thumbnails’ );
// Enable post format support
add_theme_support( ‘post-formats’, array( ‘audio’, ‘aside’, ‘chat’, ‘gallery’, ‘image’, ‘link’, ‘quote’, ‘status’, ‘video’ ) );
// Declare WooCommerce support
add_theme_support( ‘woocommerce’ );
// Thumbnail sizes
add_image_size( ‘thumb-small’, 160, 160, true );
add_image_size( ‘thumb-medium’, 520, 245, true );
add_image_size( ‘thumb-large’, 720, 340, true );
// Custom menu areas
register_nav_menus( array(
‘topbar’ => ‘Topbar’,
‘header’ => ‘Header’,
‘footer’ => ‘Footer’,
) );
}
}
add_action( ‘after_setup_theme’, ‘alx_setup’ );
Что нужно прописать в файле function.php дочерней темы, чтобы не создавались дубли фотографии?
Попробуйте поиграть с хуками из этой статьи