排除Wordpress帖子显示在各自的类别中

时间:2012-12-30 20:14:23

标签: php wordpress categories

长标题,我知道:)但无论如何,我要做的是隐藏其各自类别的帖子。所以说我提交一个帖子并将其归档在新闻类别下,我希望它不会出现在各自的类别页面中,如果需要的话。奇怪的要求,我知道..

我这样做的方法是使用任何值创建一个名为“hide”的自定义字段,然后我将div类“post”的CSS样式回显到display:none。这是PHP if语句:

<?php } if($hide) { ?>

echo '<style type="text/css"> .post {display:none;} </style>';

<?php } ?>

当输入自定义字段“hide”的任何值时,这会成功隐藏div“post”,但问题是......它隐藏所有我的帖子!!因为我的所有帖子都显示在div类“post”下,并且回显的css样式正在应用于所有.post div,而不仅仅是我输入自定义字段的那个。

查看我的Wordpress帖子,每个帖子都有一个单独的数字和div值。从理论上讲,我可以手动输入每个div的id并在每个帖子输入后隐藏每个帖子,但这会花费太长时间。

此时,我真的不知道如何解决这个问题所以它只隐藏了我输入自定义字段的帖子。真的很感激任何帮助! :)

更新:我忘了提到我还使用其他自定义字段来显示帖子..这是我的完整PHP代码的样子:

<?php } if (is_category('audio')) { ?>
<div class="entry-summary">
<?php if (has_post_thumbnail()){ ?>
<?php if($audiohover == '5') { ?>
<div class="view view-fifth">
<?php the_post_thumbnail(); ?>
<div class="mask">
<a href="<?php echo esc_url_raw( $url ); ?>" class="info" target="_blank"><img src="else" /></a>
</div>
</div>

<?php } elseif($audiohover == '6') { ?>
<div class="view view-fifth">
<?php the_post_thumbnail(); ?>
<div class="mask">
<a href="<?php echo esc_url_raw( $url ); ?>" class="info" target="_blank"><img src="else" /></a>
</div>
</div>              

<?php } elseif($audiohover == '4') { ?>
<div class="view view-fifth">
<?php the_post_thumbnail(); ?>
<div class="mask">
<a href="<?php the_permalink(); ?>?fromwhere=audio"" class="info"><img src="img" /></a>
</div>
</div>

<?php } if($hide) { ?>



<?php } ?>

<?php } ?>

<?php } ?>

我想要实现的内容摘要:我想选择是否在相应的类别页面中显示帖子。示例:我在“新闻”类别下发布了一些内容。当我转到新闻类别页面时,我希望能够选择是否在新闻类别下提交的帖子可见。我现在这样做的方法是通过自定义字段。阅读问题,看看它为什么不能正常工作! :(

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

$hide = get_post_meta( $post->ID, 'hide', TRUE );

if ( $hide != '' ) {
  // Don't display
}
else {
  // Display post
}

<强>已更新

您的更新中的所有代码都属于一个类别,在本例中为audio,因此此条件应位于顶部,如下所示:

<?php
if ( is_category( 'audio' ) ) {
$hide = get_post_meta( $post->ID, 'hide', TRUE );
  if ( $hide != '' ) {
  // Don't display
}
else { ?>

<div class="entry-summary">
<?php if ( has_post_thumbnail() ) { ?>
    <?php if ( $audiohover == '5' ) { ?>
      <div class="view view-fifth">
        <?php the_post_thumbnail(); ?>
        <div class="mask">
          <a href="<?php echo esc_url_raw( $url ); ?>" class="info" target="_blank"><img src="else" /></a>
        </div>
      </div>

      <?php
    }
    elseif ( $audiohover == '6' ) {
      ?>
      <div class="view view-fifth">
        <?php the_post_thumbnail(); ?>
        <div class="mask">
          <a href="<?php echo esc_url_raw( $url ); ?>" class="info" target="_blank"><img src="else" /></a>
        </div>
      </div>

      <?php
    }
    elseif ( $audiohover == '4' ) {
      ?>
      <div class="view view-fifth">
        <?php the_post_thumbnail(); ?>
        <div class="mask">
          <a href="<?php the_permalink(); ?>?fromwhere=audio"" class="info"><img src="img" /></a>
        </div>
      </div>

      <?php  } } } }?>

也就是说,如果我理解得对。