2014-10-17 51 views
0

我正在建立一個wordpress主題,並在每頁的頂部,我顯示該網頁精選圖像。我正在做一個快速查詢,以檢查它是否使用了has_featured_image()的精選圖像,但是,當涉及到我的博客頁面(home.php)時 - 此查詢查找第一個POST的精選圖像,而不是這一頁。WordPress的檢查,如果博客頁面(主頁)有一個特色圖像

如何查看我的博客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。我仍然認識到這一點,但是一旦頁面設置爲「博客」,它就會從「常規」頁面的銀行中拋出。哈,不知道這是否合理。所以請求後ID就不是那麼簡單了...

<?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 } ?> 
相關問題