Я создал настраиваемое поле, позволяющее мне добавлять 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, он работает. Так что я явно не нацеливаюсь на класс правильно.