При добавлении записи в теги пропадает изображение тегов (настроенных с помощью ACF)
При добавлении записи в теги пропадает изображение тегов (настроенных с помощью ACF).
Почему, подскажите пожалуйста?
(При добавлении записи в рубрики все работает)
ничего не понятно. На такие вопросы нельзя дать ответ.
Не скринов, не кода.
Не понятно, какая связь между записями и изображениями в тегах?
Как запись влияет на изображение к тегу?
Разделил записи по тегам, для тегов сделал фон + картинку с помощью acf, когда к тегу не присвоена запись - все работает , когда только добавляешь к тегу запись - не работает. с рубриками все работает.
Скиньте код файла (весь файл) тега, где идет вывод фона, картинки, записей.
Одним словом, шаблон, который исполь для тега.
Это файл archive.php ?
Фон
<?php if($fon_image=get_field("fon_dlya_tega",get_tag($tag))){?> <style type="text/css"> .line-tags { background: url(<?php echo $fon_image;?>); } </style> <?php }?>
Картинка
<?php if($tag_image=get_field("kartinka_dlya_tega",get_tag($tag))){?> <img src="<?php echo $tag_image;?>"/> <?php }?>
переменная $tag
Откуда берется, как определяется?
Код, который выше НУ никак не может быть так, чтоб не работал из-за того, что добавл запись.
Это не логично.
А вот если вы НЕПРАВИЛЬНО определ
get_tag($tag)
- тогда все понятно.
Сделайте так еще и напишите, что выходит:
echo '<pre>'; print_r( get_tag($tag) ); echo '</pre>';
Печатается точно тег ?
Подскажите пожалуйста, как правильно надо записать ?
<!--vstavka--> <div class="line-tags"> <?php if($fon_image=get_field("fon_dlya_tega",get_tag($tag))){?> <style type="text/css"> .line-tags { background: url(<?php echo $fon_image;?>); } </style> <?php }?> <div class="line-tags-container"> <div class="flex-tags-line"> <div class="info-tags-line-rec"> <a href="<?php echo get_permalink(398); ?>">рецепты </a><i class="fas fa-chevron-right"></i> <span>#<?php single_tag_title(''); ?></span> </div> <div class="img-tags-line"> <?php if($tag_image=get_field("kartinka_dlya_tega",get_tag($tag))){?> <img src="<?php echo $tag_image;?>"/> <?php }?> </div> <div class="info-tags-line"> <div class="info-tags-line-recipes"> <a href="<?php echo get_permalink(398); ?>">рецепты </a><i class="fas fa-chevron-right"></i> <span>#<?php single_tag_title(''); ?></span> </div> <h1 class="tags-title-line"><?php single_tag_title(''); ?></h1> <?php echo tag_description(); ?> </div> </div> </div> </div> <!--/vstavka--> <!--recipes-card--> <div class="recipes-2"> <!--flex card-recipes--> <div class="flex-recipes"> <?php $args = array( 'tag'=> get_query_var('tag'), 'paged' => get_query_var('paged') ?: 1 ); if ( have_posts() ) : query_posts($args); while (have_posts()) : the_post(); ?> <!--card-recipes--> <div class="flex-card"> <a href="<?php the_permalink(); ?>" title="перейти к рецепту"> <div class="recipes-card"> <figure> <img src="<?php echo get_template_directory_uri() ?>/assets/images/recipes/cake.jpg" alt=""> </figure> <div class="card-meta"> <p class="dish-type" title="категория">Dessert</p> <ul class="dish-stats"> <li title="время приготовления"><i class="far fa-clock"></i>2.5 hrs </li> <li title="порции"><i class="fas fa-utensils"></i>7</li> <li title="ингредиенты"><i class="fas fa-hamburger"></i> 5</li> </ul> </div> <h1 class="title-card"><?php the_title(); ?></h1> </div> </a> </div> <!--/card-recipes--> <?php endwhile; ?> <div class="pagintaion-container"> <?php the_posts_pagination( array( 'prev_next' => true, 'prev_text' => ('<i class="fas fa-chevron-left"></i>'), 'next_text' => ('<i class="fas fa-chevron-right"></i>'), ) ); ?> </div> <?php endif; wp_reset_query(); ?> </div> <!--/flex card-recipes--> </div> <!--/recipes-card-->
я ниже в ответе пишу.
А также на "не получается" - скиньте весь код с файла, и тогда я смогу указать точно на проблему.
Но проблему в том, что во втором параметре вы НЕ передаете $term
поэтому ACF и не может выдать вам картинку.
вместо
get_tag($tag)
нужно использовать:
get_term_by( get_queried_object_id() )
не выводит, подскажите как выглядит полная запись, пожалуйста.
Ваш код был:
<?php if($tag_image=get_field("kartinka_dlya_tega",get_tag($tag))){?> <img src="<?php echo $tag_image;?>"/> <?php }?>
стало:
<?php if( $tag_image=get_field( "kartinka_dlya_tega",get_queried_object() ) ){?> <img src="<?php echo $tag_image;?>"/> <?php }?>
Спасибо! Для рубрик тоже стоит заменить?
<?php if($fon_image=get_field("fon_dlya_taksonomii",get_category($cat))){?> <style type="text/css"> .line-category { background: url(<?php echo $fon_image;?>); } </style> <?php }?>
Спасибо большое!
Отмечайте вопрос как решенным.
вместо
нужно использовать:
Исправлено на: get_queried_object()
Можно использовать и get_term_by() - но там больше параметров нужно указывать.