Intereting Posts
Автоматическое обновление значения настраиваемого поля по умолчанию $ wpdb-> insert изменяет значение отображать содержимое разных страниц на одной странице Как удалить раздел профиля профиля или сообщение «Вы можете изменить свое изображение профиля на Gravatar». Пользовательская таксономия внутри поля автозаполнения пользовательских сообщений Фильтр pre_comment_content не работает с использованием IntenseDebate Усовершенствованная модерация Вывод данных о едином стандарте по таксономии Как скрыть сообщение с Домашней страницы ..? Какой запрос отправляет WordPress при обновлении темы? используя wp_remote_get вместо file_get_contents и / или отношение множественного ключевого слова не работает Непоследовательный ответ кода сервера с использованием HTTP API Последователи WordPress Настройка общей формы бронирования для пользовательского типа сообщения Название страницы WordPress повторяется на некоторых страницах

Удаление нижнего колонтитула «Работает на» с использованием дочерней темы PHP

Я хотел бы удалить пользовательскую ссылку «Powered by WordPress» в нижнем колонтитуле.

Я хочу сделать это, используя action hooks / filters в файле function.php дочерней темы.

Я не хочу использовать CSS (который просто скрывает его), редактировать исходный файл темы (который будет переопределяться при обновлении темы) или скопировать файл footer.php в footer.php тему и отредактировать его там (так как я после этого необходимо обновить файл после обновления темы).

Тема, которую я использую, – «сверкающая». Функция info extras.php колонтитула определена в файле extras.php :

 function sparkling_footer_info() { global $sparkling_footer_info; printf( esc_html__( 'Theme by %1$s Powered by %2$s', 'sparkling' ) , '<a href="http://colorlib.com/" target="_blank">Colorlib</a>', '<a href="http://wordpress.org/" target="_blank">WordPress</a>'); } 

И вызывается в файле footer.php (несколько строк снизу):

 <div id="footer-area"> <div class="container footer-inner"> <div class="row"> <?php get_sidebar( 'footer' ); ?> </div> </div> <footer id="colophon" class="site-footer" role="contentinfo"> <div class="site-info container"> <div class="row"> <?php if( of_get_option('footer_social') ) sparkling_social_icons(); ?> <nav role="navigation" class="col-md-6"> <?php sparkling_footer_links(); ?> </nav> <div class="copyright col-md-6"> <?php echo of_get_option( 'custom_footer_text', 'sparkling' ); ?> <?php sparkling_footer_info(); ?> </div> </div> </div><!-- .site-info --> <div class="scroll-to-top"><i class="fa fa-angle-up"></i></div><!-- .scroll-to-top --> </footer><!-- #colophon --> </div> 

Я попытался вставить следующее в function.php (вместе с несколькими вариантами), но он не работает:

 function remove_sparkling_footer(){ remove_action( 'wp_footer', 'sparkling_footer_info' );} add_action( 'init', 'remove_sparkling_footer' ); 

Любая помощь или идеи будут высоко оценены.

Поскольку функция sparkling_footer_info() использует esc_html__() и эта функция запускает фильтр esc_html перед esc_html , вы можете перехватить вывод там.

 add_filter ('esc_html', 'wpse_245817_esc_html', 100, 2 ); function wpse_245817_esc_html( $safe_text, $text ) { if ( $safe_text == 'Theme by %1$s Powered by %2$s' ) { return ''; } return $safe_text; } 

Возможно, вам нужно немного адаптировать код для своих нужд, я тоже не тестировал его.

Функция sparkling_footer_info() вызывается непосредственно из нижнего колонтитула без каких-либо действий или фильтра, которые вы могли бы перехватить. Внутри функции нет фильтра. Предположительно, люди в Sparkling не хотят, чтобы вы его удалили. Там может быть что-то в этом в лицензии на тему, поэтому проверьте, законно ли то, что вы пытаетесь сделать.

Тем не менее, PHP предлагает метод переопределения функций (при условии, что runkit включен в вашу установку PHP, что не так автоматически). Вы не можете удалить эту функцию, если вы не удалите ее из вызова шаблона в своей дочерней теме, что, по-видимому, не то, что вы хотите. Поэтому вы переопределяете его с пустой функцией (это просто говорит «return»).

Вы запустили переопределение после загрузки sparkling_footer_info() , после загрузки functions.php вашей дочерней темы. Например, вы можете прикрепить его к wp_head следующим образом:

 add_action ('wp_head','wpse245817_replace_function'); function wpse245817_replace_function () { runkit_function_redefine('sparkling_footer_info','','return;'); } 

Обратите внимание, что я не тестировал этот код. Может потребоваться некоторая отладка.