WordPress как на ладони

Свой хэдлайн с изображением для страниц

Каким образом можно реализовать для каждой страницы/записи/рубрики/страницы-тега индивидуальный хэдлайн с выводом на нём заголовка страницы и краткого описания?

Сейчас данный вариант реализован посредством виджета темы добавляемого через раздел админки "Внешний вид - Виджеты"

это работает, но из-за того что таких виджетов добавлено более ста штук (для каждой страницы свой виджет) это тормозит открытие и работоспособность страницы админки "Внешний вид - Виджеты"

Можно ли данный вариант хэдлайна реализовать добавлением через редактирование каждой страницы/записи/рубрики/страницы-тега в отдельности, т.е. заходишь в редактор для страницы, а там отдельное поле, куда вставляешь нужное изображение, прописываешь заголовок и краткое описание, пытался найти инфу в сети или плагин какой, не получилось, возможно не так запрос ставил...

0
earlnik
3 месяца назад 4
  • 1
    el-lable485 el-lable.ru

    Используйте плагин https://wp-kama.ru/plugin/acf

    earlnik 2 месяца назад

    Блок (div class="headlines")создал с помощью плагина ACF, но теперь не могу спрятать div этого блока, когда не заполнены поля и отсутствует изображение фона

    вот код блока:

    <div class="headlines">
    	<?php $image = get_field('headlines_background'); ?>
    	<div class="centered bttk-cta-bg" style="background:url(<?php echo $image['url']; ?>) no-repeat; background-size: cover; background-position: center; height: 200px; position: relative;">
    		<div class="blossomtheme-cta-container headlines_title">
    		<?php if( get_field('headlines_title') ): ?>
    			<h4><?php the_field('headlines_title'); ?></h4>
    		<?php endif; ?>
    			<div class="headlines_description text-holder">
    			<?php if( get_field('headlines_description') ): ?>
    				<p><?php the_field('headlines_description'); ?></p>
    			<?php endif; ?>
    			</div>
    		</div> 
    	</div>        
    </div>
    

    поля которые заполняются через ACF:
    1) headlines_background - поле заполнения(подгрузки) фонового изображения через ссылку на файл изображения
    2) headlines_title - заголовок
    3) headlines_description - описание

    el-lable 2 месяца назад

    Так добавьте условия вывода

    <?php if( !empty( get_field( 'field-one' ) ) ) { ?>
    	здесь ваш контент или блок в котором выводится само поле с помощью the_field() <?php the_field( 'field-one' ); ?>
    	или так - с помощью get_field() <?php echo get_field( 'field-one' ); ?>
    <?php } ?>
    earlnik 2 месяца назад

    в принципе, для вот этого поля:

            <?php if( get_field('headlines_title') ): ?>
    			<h4><?php the_field('headlines_title'); ?></h4>
    		<?php endif; ?>

    и для вот этого поля:

                <?php if( get_field('headlines_description') ): ?>
    				<p><?php the_field('headlines_description'); ?></p>
    			<?php endif; ?>

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

    Для вот этой конструкции:

    <?php $image = get_field('headlines_background'); ?>
    	<div class="centered bttk-cta-bg" style="background:url(<?php echo $image['url']; ?>) no-repeat; background-size: cover; background-position: center; height: 200px; position: relative;">

    я не могу понять как применить вашу конструкцию и опять "но" если всё-таки я скрою и её, то на сам блок headlines это не повлияет, так как он останется видимым, из-за заданной высоты и затемнение фона

    нужно что бы выполнялось условие - если во всех полях headlines_background, headlines_title и headlines_description отсутствует заполнение, то для блока div class="headlines" выполняется условие display: none;

    el-lable 2 месяца назад

    тогда для всего блока добавьте условие тоже

    <?php if( !empty( get_field( 'headlines_background' ) ) && !empty( get_field( 'headlines_background' ) ) && !empty( get_field('headlines_title') ) && !empty( get_field('headlines_description') ) ) { ?>
    	<div class="headlines">
    	...
    	</div>
    <?php } ?>
    el-lable 2 месяца назад

    Либо сделайте еще какой-то чекбокс в произвольных полях который включает/выключает отображение этого блока целиком, и пропишите условие вывода блока на основе его.

    earlnik 2 месяца назад

    Благодарю, получилось!,... а то я не в ту сторону копал пытаясь скрыть js или JQuery пустой блок...

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация