WordPress проверяет, есть ли на странице блога (домашней странице) изображение

Я создаю тему WordPress, и в верхней части каждой страницы я показываю изображение, показываемое на этих страницах. Я делаю быстрый запрос, чтобы проверить, есть ли у него рекомендуемое изображение, используя has_featured_image() однако, когда дело доходит до моей страницы блога (home.php) — этот запрос ищет рекомендуемое изображение первого сообщения POST, а не рекомендуемое изображение страницы PAGE.

Как я могу проверить, есть ли на странице моего блога изображенное изображение, так как приведенный выше код не работает.

0

Решение

Выяснив это, приведенный ниже фрагмент кода выяснит, есть ли на вашем PAGE в блоге изображение, которое вы выбрали, вместо того, чтобы снимать это изображение с первого POST.

$page_for_posts = get_option( 'page_for_posts' );
if (has_post_thumbnail( $page_for_posts )) {
// do something
};
0

Другие решения

Сэм, у тебя есть полный код для этого? Я пытаюсь отобразить избранные изображения страниц в качестве фонового изображения в div и заставить его работать на всех страницах, кроме страницы блога, где отображаются избранные изображения для последней записи блога.

Благодарю.

0

Я столкнулся с точно такой же проблемой. У меня есть сайт, который использует избранные изображения в качестве героя графики. Я хотел, чтобы страница блога следовала его примеру, но когда я превратил статическую страницу в пользовательский индекс сообщений блога, мой код больше не работал. Я наконец нашел решение, которое я записал в свои условные операторы в header.php вне цикла.

Первое утверждение получает рекомендуемое изображение для страницы:

<?php if ( has_post_thumbnail( $post_id )) { ?>
<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'thumbnail') ); ?>
<div class="grid_navigation" style="background-image: url('<?php echo $url ?>');">

Второй проверяет, является ли это домашней страницей или страницей блога, и захватывает URL-адрес статической страницы, превращенной в индекс блога. Я до сих пор в этом разбираюсь, но как только страница настроена на «блог», она выбрасывается из банка «обычных» страниц. Ха, не уверен, что имеет смысл. Таким образом, запрос идентификатора сообщения уже не так прост …

<?php } elseif (is_home() && get_option('page_for_posts') ) { ?> // Gets featured image of page set to home or blog
<?php $url = wp_get_attachment_url(get_post_thumbnail_id(get_option('page_for_posts')),'full'); ?>
<div class="grid_navigation" style="background-image: url('<?php echo $url ?>');">

А затем последнее утверждение, чтобы закрыть все это:

<?php } else { ?>
<div class="grid_navigation">
<?php } ?>

Вот полное условное утверждение все вместе:

<?php if ( has_post_thumbnail( $post_id )) { ?>
<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'thumbnail') ); ?>
<div class="grid_navigation" style="background-image: url('<?php echo $url ?>');">

<?php } elseif (is_home() && get_option('page_for_posts') ) { ?> // Gets featured image of page set to home or blog
<?php $url = wp_get_attachment_url(get_post_thumbnail_id(get_option('page_for_posts')),'full'); ?>
<div class="grid_navigation" style="background-image: url('<?php echo $url ?>');">

<?php } else { ?>
<div class="grid_navigation">
<?php } ?>
0
По вопросам рекламы [email protected]