0

それらのリストを表示するために「price_tag」という名前のカスタムタイプタグを使用しています。これを使用します:

<?php if(get_the_term_list($post->ID, 'price_tag')) echo get_the_term_list($post->ID, 'price_tag', '', ' - ', '' ); else echo __('No Tags', 'custom-lang'); ?>

私が欲しいのは、「price_tag」を使用して条件を作成し、投稿に特定の「price_tag」がある場合にテキストを表示することです

だから私はこれを試してみたかった

<? if ( has_tag ('certaintag' ) ) { ?>
Show something
<? } else {} ?>

「cetainbtag」は、そのタグを持つすべての投稿でテキストを表示するために使用したい単なるタグです。

しかし、私はそれを機能させることができず、私はワードプレスの技術者ではないので、この条件に「price_tag」を含める方法がわかりません。

助けてください。感謝します。

4

3 に答える 3

0

私は Dianaj のアプローチを使用しますが、いくつかの構文が変更されています。

$tags = get_the_tags($post->ID);
if ($tags) {
  foreach ($tags as $t) {
   $tag_array[] = $t->slug;
  }
 if (in_array('certaintag',$tag_array)) {
  //Do something
 } else {
  //Do something else
 }
}

global $post;このスニペットを関数内に配置する場合は、コードの最初の行の前に追加することを忘れないでください。また、名前ではなくタグのスラッグを使用していることにも注意してください。スラッグは、タグ名よりも条件付きで使いやすいことがわかりました。

于 2013-07-20T21:38:06.440 に答える
0

の原型has_tag

has_tag( $tag, $post );

あなたがループにいるなら、あなたは使うことができます

if( has_tag( 'price_tag' ) ) {
    // price_tag exists, do your job here
}

上記のコードは、現在のタグが添付されているかどうかを確認postprice_tagます。複数のタグの配列を渡すこともできます。

if( has_tag( array('price_tag', 'another_tag') ) ) {
    // ...
}

ループの外から存在するかどうかを確認したい場合price_tagは、使用できます

if( has_tag( 'price_tag', $post ) ) {
    // price_tag exists, do your job here
}

この場合$postは、$postクエリしたオブジェクトです。has_tag とこCodex投稿も見てくださいWordPress forum

has_term ( $term, $taxonomy, $post )を使用することもできます。

if( has_term( 'price_tag', 'post_tag' ) ) {
    // do something
}

また、term_exists( $term, $taxonomy, $parent )は以下のように使用できます

$term = term_exists( 'price_tag', 'post_tag' );
if ( $term !== 0 && $term !== null ) {
    // The term 'price_tag' is used as a post tag;
}

上記のコードはid、用語 (price_tagこの場合) が存在する場合、それを返します。

また、 get_the_tagsget_tagsをオンにしてCodex、これらの WordPress の回答 ( this onethis one ) も確認してください。これらのいずれかから解決策が見つかることを願っています。

于 2013-07-20T18:25:07.710 に答える
0

ワードプレスを使用wp_get_post_tags($post->ID);して、配列を返す投稿のすべてのタグを取得できます。配列をループしてタグを取得する必要があります

$tags=wp_get_post_tags($post->ID);
$alltags=array();
foreach($tags as $t){
$alltags[]=$t->taxonomy;
}

次にinarray、if条件で使用します

if (in_array("certaintag", $alltags)) {
 Show something
}else{

}

それが理にかなっていることを願っています

于 2013-07-20T17:29:08.953 に答える