CSS-классы не меняются, когда я заменяю их в функции? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь сделать так, чтобы заголовок и описание сайта, отображаемые на главной странице, имели тот же стиль, что и заголовок и описания страниц на всех других страницах, но у меня возникли некоторые проблемы. Вот оригинальная функция, которая отображает название и описание сайта:

/**
 * Displays Site Title and Site Description.
 */
function integer_site_title() {
    $class = 'site-branding__copy';

    if ( 0 == get_theme_mod( 'header_text', 1 ) ) {
        $class .= ' screen-reader-text';
    }

    printf( '<div class="%s">', esc_attr( $class ) );

        if ( is_front_page() && is_home() && get_bloginfo( 'name' ) ) {
            printf( '<h1 class="site-title"><a href="%s" rel="home">%s</a></h1>',
                esc_url( home_url( '/' ) ),
                esc_html( get_bloginfo( 'name' ) )
            );
        } elseif ( get_bloginfo( 'name' ) ) {
            printf( '<p class="site-title"><a href="%s" rel="home">%s</a></p>',
                esc_url( home_url( '/' ) ),
                esc_html( get_bloginfo( 'name' ) )
            );
        }

        if ( get_bloginfo( 'description' ) ) {
            printf( '<p class="site-description">%s</p>', esc_html( get_bloginfo( 'description' ) ) );
        }

    echo '</div>';
}

Заголовок и описания страниц на других страницах имеют имена классов, page-header__title и page-header__description. Итак, я подумал, что если я просто изменил код для заголовка / описания сайта на этот:

function integer_site_title() {
    $class = 'site-branding__copy';

    if ( 0 == get_theme_mod( 'header_text', 1 ) ) {
        $class .= ' screen-reader-text';
    }

    printf( '<div class="%s">', esc_attr( $class ) );

        if ( is_front_page() && is_home() && get_bloginfo( 'name' ) ) {
            printf( '<h1 class="page-header__title"><a href="%s" rel="home">%s</a></h1>',
                esc_url( home_url( '/' ) ),
                esc_html( get_bloginfo( 'name' ) )
            );
        } elseif ( get_bloginfo( 'name' ) ) {
            printf( '<p class="page-header__title"><a href="%s" rel="home">%s</a></p>',
                esc_url( home_url( '/' ) ),
                esc_html( get_bloginfo( 'name' ) )
            );
        }

        if ( get_bloginfo( 'description' ) ) {
            printf( '<p class="page-header__description">%s</p>', esc_html( get_bloginfo( 'description' ) ) );
        }

    echo '</div>';
}

... это применило бы тот же стиль, но это не сработало. Когда я проверял код, имена классов не менялись, хотя я изменил их в коде. Как я могу сделать эту работу?

1 Ответ

0 голосов
/ 04 апреля 2019

Я понял, в чем проблема. Функция вообще не работала, потому что я вызывал ее из родительской темы. Мне нужно было создать новую функцию в дочерней теме functions.php и вызвать ее вместо функции из родительской темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...