0

長いタイトル、私は知っています:)しかし、とにかく、私がやろうとしているのは、それぞれのカテゴリから投稿を非表示にすることです。つまり、投稿を送信してニュースカテゴリにファイルすると、必要に応じて、それぞれのカテゴリページに表示されないようにします。奇妙な要求、私は知っています。

私がこれを行った方法は、任意の値で「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スタイルは、カスタムフィールドに入力したものだけでなく、すべての.postdivに適用されているためです。

私の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 } ?>

達成したいことの要約:投稿をそれぞれのカテゴリページに表示するかどうかを選択したい。例:ニュースカテゴリに何かを投稿します。ニュースカテゴリのページに移動するときに、ニュースカテゴリの下に提出された投稿を表示するかどうかを選択できるようにしたいと思います。今のところこれを行う私の方法は、カスタムフィールドを使用することです。質問を読んで、正しく機能しない理由を確認してください。:(

4

1 に答える 1

0

これを試すことができます:

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

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

更新しました

更新プログラムのすべてのコードは 1 つのカテゴリ (この場合は ) 用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  } } } }?>

つまり、私の理解が正しければ。

于 2012-12-30T21:02:34.287 に答える