Можете ли вы добавить CSS в дочерний класс CSS, созданный с помощью пользовательских полей? - PullRequest
0 голосов
/ 01 мая 2019

Я создал настраиваемое поле, позволяющее мне добавлять CSS в заголовок записи на определенных страницах. В настраиваемом поле указываются метаданные либо hide_title_yes, либо hide_title_no с помощью переключателя в окне страницы редактирования с помощью плагина Advanced Custom Fields.

Затем я использовал эти метаданные для создания собственного класса CSS.

<?php $custom_values = get_post_meta($post->ID, 'hide_title'); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class($custom_values); ?>>

Проблема в том, что класс CSS добавляется к элементу article, а не к элементу header. Есть ли способ выбрать элемент заголовка из элемента article?

    <article id="post-19" class="hide_title_yes post-19 page type-page status-publish hentry">

Я пытался использовать

article > header .entry-header {
left: -999em;
position: absolute;
}

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

01/05 Обновление: я добавил скриншот структуры HTML. Структура HTML

01/05 Обновление 2: теперь я добавил следующий код:

<header class="entry-header<?php echo get_field('hide_title') ? ' yes' : '' ?>">
        <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
        <?php twentyseventeen_edit_link( get_the_ID() ); ?>
    </header><!-- .entry-header -->

Класс css теперь добавлен в заголовок записи.

<header class="entry-header yes">

Однако, когда я пытаюсь нацелиться на этот класс в моем CSS-файле, он не работает. Код в файле CSS:

header.entry-header.yes {
    left: -999em;
    position: absolute;
}

Когда я добавляю код в инспектор Google, он работает. Так что я явно не нацеливаюсь на класс правильно.

1 Ответ

0 голосов
/ 01 мая 2019

Вам нужно добавить класс в заголовок (header.php), проверив условие hide_title_yes и указав целевой класс в вашем файле CSS.

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