IF ELSE标题图像与ACF Pro,显示存档页面的错误图像

时间:2015-10-10 20:29:40

标签: wordpress if-statement advanced-custom-fields

我尝试根据用户访问的页面显示不同的标题图像。除了is_archive(listing)

之外,下面的代码效果很好

出于某种原因,它想要使用is_archive(team)

中的图像
<div class="header-images">
   <?php if (is_archive('team')) { ?>
<img src="<?php the_field('header_image_team', 'options'); ?>" class="img-responsive bkg" />

   <?php } elseif (is_singular('team')) { ?>
<img src="<?php the_field('header_image_team', 'options') ?>" class="img-responsive bkg" /> 

   <?php } elseif (is_archive('listings')) { ?>
<img src="<?php the_field('header_image_listings', 'options'); ?>" class="img-responsive bkg" />

   <?php } elseif (is_singular('listings')) { ?>
<img src="<?php the_field('header_image_single') ?>" class="img-responsive bkg" />

   <?php } elseif (is_home()) { ?>
<img src="<?php the_field('header_image_ic', 'options') ?>" class="img-responsive bkg" /> 
   <?php } ?>

对于它的价值,我正在使用Advanced Custom Fields PRO。因此,我为自定义帖子类型设置了一个选项页面:team&amp;列表。在每个帖子类型菜单中都有一个设置面板,可以上传图像。

单数列表&#39;从每个帖子中提取图像然后当然is_home(默认博客)有一个选项面板,上面还有一个要上传的图像。

总的来说,如果我没有宣布&#39; listing&#39;的归档页面?假设显示团队形象,那么它不应该显示任何内容,对吧?

这里是ACF Pro选项的功能。

if( function_exists('acf_add_options_page') ) {
  acf_add_options_page(array(
    'page_title'  => 'Theme General Settings',
    'menu_title'  => 'Theme Settings',
    'menu_slug'   => 'theme-general-settings',
    'capability'  => 'edit_posts',
    'redirect'    => false
  ));

  acf_add_options_sub_page(array(
    'page_title'  => 'Theme Header Settings',
    'menu_title'  => 'Header',
    'parent_slug' => 'theme-general-settings',
  ));

  acf_add_options_sub_page(array(
    'page_title'  => 'Theme Footer Settings',
    'menu_title'  => 'Footer',
    'parent_slug' => 'theme-general-settings',
  ));

  acf_add_options_sub_page(array(
    'title'      => 'Team Settings',
    'parent'     => 'edit.php?post_type=team',
    'capability' => 'manage_options'
  ));

  acf_add_options_sub_page(array(
    'title'      => 'Listings Settings',
    'parent'     => 'edit.php?post_type=listings',
    'capability' => 'manage_options'
  ));

  acf_add_options_sub_page(array(
    'title'      => 'Industry Coverage Settings',
    'parent'     => 'edit.php',
    'capability' => 'manage_options'
  ));
}

2 个答案:

答案 0 :(得分:0)

您缺少一些分号,也在listings之前的elseif语句中。也许这就是你的问题。

语法正确:

<?php } elseif (is_singular('team')) { ?>
<img src="<?php the_field('header_image_team', 'options'); ?>" class="img-responsive bkg" /> 

答案 1 :(得分:0)

如果您没有archive.php或achive-your_custom_post.php,Wordpress会使用index.php来显示该页面。

然后,如果您没有看到正确的图像,这是正常的。 因为你的情况是is_home()。