Поддержка Проблемы и решения Не работают перенесенные в дочернюю тему extras.php и template-tags.php

  • В записях нужно было убрать отображение даты публикации, а также ссылку на архивы автора.

    Нашел в родительской теме: inc/extras.php, где за вывод всего этого отвечает функция:

    // Hide Date?
    	if ( false === $theme_options['meta_date'] ) {
    		$classes[] = 'date-hidden';
    	}
    
    // Hide Author?
    	if ( false === $theme_options['meta_author'] ) {
    		$classes[] = 'author-hidden';
    	}

    Там, где Hide Date я поставил true и ура, дата публикации уже не отображается.

    Дальше, нашел файл inc/template-tags.php, где за вывод автора статьи отвечает след. функция:

    function wellington_meta_author() {
    
    		$author_string = sprintf( '<span class="author vcard"><a href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
    			esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
    			esc_attr( sprintf( esc_html__( 'View all posts by %s', 'wellington' ), get_the_author() ) ),
    			esc_html( get_the_author() )
    		);

    Убрал тег ссылки и ура, теперь ссылка на архивы автора больше не отображаются. Появляется просто текст.

    Наконец, чтобы при обновлении темы все эти изменения не слетели, в дочернюю тему скопировал уже существующие вариации extras.php и template-tags.php, в родительской теме эти файлы привел в первоначальный вид.

    Увы, в дочерней теме изменения не сработали. Попробовал в дочке создать такие же директории как в родительской — папку inc, и поместил туда эти 2 файла, опять не сработало!

    Вопрос: почему измененные php файлы в дочерней теме не работают? При этом, style.css и footer.php из дочки работают нормально.

    • Тема изменена 4 года, 11 месяцев назад пользователем worldgress.
    • Тема изменена 4 года, 11 месяцев назад пользователем worldgress. Причина: убрал лишний тег ссылки, так как оказывается чтобы он выводился нужно обернуть в код

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • а не проще это все скрыть стилями?

    .entry-meta{
        display: none !important;
    }

    а не проще это все скрыть стилями?

    Проще, но не правильно, так как поисковый робот будет переходить по такой ссылке а значит:

    1. Будет передаваться ссылочный вес
    2. Будут индексироваться архивы записей
    3. Будет тратиться краулинговый бюджет

    понятно, вы делаете сайт для поисковых роботов, а не для своих посетителей.
    Ну удачи вам в этом не легком деле.

    понятно, вы делаете сайт для поисковых роботов, а не для своих посетителей.

    Не надо так болезненно воспринимать мои слова о неправильности вашего метода.

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Вопрос: почему измененные php файлы в дочерней теме не работают? При этом, style.css и footer.php из дочки работают нормально.

    Потому что файлы в папке inc скорее всего подключаются напрямую в файле functions.php с помощью require или include.
    Для корректировки через дочернюю потребуется отыскать нужный apply_filters или function_exists, если они, конечно, там есть.

    Тема из каталога? Дадите ссылку или название?

    Тема из каталога? Дадите ссылку или название?

    Да, тема называется Wellington — https://wordpress.org/themes/wellington/

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Там, где Hide Date я поставил true и ура, дата публикации уже не отображается.

    В Внешний вид -> Настроить поищите настройку для «Hide Date» скорее всего в разделе «Post Settings».

    Убрал тег ссылки и ура, теперь ссылка на архивы автора больше не отображаются. Появляется просто текст.

    Эту функцию, в которой меняли, копируете в functions.php дочерней темы.

    function wellington_meta_author() {
    
    		$author_string = sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
    			esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
    			esc_attr( sprintf( esc_html__( 'View all posts by %s', 'wellington' ), get_the_author() ) ),
    			esc_html( get_the_author() )
    		);
    
    		return '<span class="meta-author"> ' . $author_string . '</span>';
    	}

    И корректируете как нужно. Она переопределит родительскую.

    @denisco, Спасибо огромное, вы мне очень помогли! Пусть вернется добром.

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Не работают перенесенные в дочернюю тему extras.php и template-tags.php» закрыта для новых ответов.