Exclude page name from loop

时间:2013-08-30 作者:Eric

我当前正在使用此循环:

if (is_single() || is_page() ) :
  if (have_posts() ) :
    while (have_posts() ) :
    the_post();
如何在循环中排除多个页面
例如,我想排除页面example.com/musicexample.com/contact.

编辑:

我已经按照通用汽车提供的方式做了,但我的音乐和联系人页面在申请后一直在加载。

<?php if (is_single() || is_page() ) : if (have_posts() ) : $exclude_pages = array(\'music\', \'contact\'); while (have_posts() ) : if ( is_page() && ! empty($exclude_pages) && (
      in_array($post->post_name, (array)$exclude_pages) ||
      in_array($post->post_name, (array)$exclude_pages)
  ) ) continue; the_post(); ?>
<meta name="description" content="<?php the_content_limit(150)?>" />
// loop continues
<?php endwhile; endif; 
elseif (is_home() ): ?>
// loop continues

<?php endif; ?>

<?php if( is_page( \'music\' )) { ?>
<meta property="og:image" content="" />
//loop continues
<?php } ?>
所以要澄清一下:我想排除一些通过标题中的循环生成的元标记。phpNow使用我的循环,所有页面和帖子都会受到循环的影响。因此,我不希望页面music和contact具有来自循环页眉的相同页眉标记。php。

2 个回复
最合适的回答,由SO网友:gmazzap 整理而成

另一种方法是将不需要的页面放入数组中。用于将它们存储在选项或序列化自定义字段中。

$exclude_pages = array(\'music\', \'contact\');
// can be something like this: $exclude_pages = get_option(\'exclude_pages\');

if ( have_posts() ) : while ( have_posts() ) : the_post();
  if ( is_page() && ! empty($exclude_pages) && (
      in_array($post->post_name, (array)$exclude_pages) ||
      in_array($post->post_title, (array)$exclude_pages)
  ) ) continue; // skip


  // the rest of your loop here
编辑,以排除您可以使用的某些帖子类型:

$exclude_pages = array(\'music\', \'contact\');
$exclude_post_types = array(\'music\', \'any_here\');

if ( have_posts() ) : while ( have_posts() ) : the_post();
  if ( is_page() && ! empty($exclude_pages) && (
    in_array($post->post_name, (array)$exclude_pages) ||
    in_array($post->post_title, (array)$exclude_pages)
  ) ||
  ( is_single() && in_array(get_post_type(), (array)$exclude_post_types) ) ) continue;

SO网友:s_ha_dum

is_page() 将采用页段塞的参数。这加上一些逻辑运算符应该可以做到这一点。

if (
  (is_single() || is_page())
  && (
    !is_page(\'music\')
    || !is_page(\'contact\')
  )
)
注意:在这些方面很容易出现逻辑错误,我没有对此进行测试。这可能不太正确,但我相信这很接近。

结束

相关推荐

Hooking get_pages()

在站点上,这是一个使用get_pages() 制作页面列表。该列表用于创建页面列表以及创建下一页和上一页链接。()http://wordpress.org/plugins/next-page-not-next-post/ )页面结构使用一些空页面只是为了建立层次结构。这些页面不在导航中,导航由wp_nav_menu(), 但当插件调用时,它们会被登记get_pages()因此,我想从插件发出的请求中删除这些空白页面。我的目的是为每个不必要的页面添加一个自定义字段,并使用此自定义字段来选择和删除它们。我第一