При добавлении записи в теги пропадает изображение тегов (настроенных с помощью 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() - но там больше параметров нужно указывать.
<?php if($tag_image=get_field("kartinka_dlya_tega",get_queried_object())){?> <img src="<?php echo $tag_image;?>"/> <?php }?>