0

WordPress にこのプラグインがあり、大幅に変更しました。プラグインの本来の目的は、指定したカテゴリのサムネイルを表示することです。今のところ、私はそれ以上のことを成し遂げました。とにかく、ここにプラグインのショートコードがあります..

[categorythumbnaillist 7]

7 はもちろんカテゴリ ID です。プラグインは、指定したカテゴリ (つまり、7、3、4) の投稿を取得し、私が作成したこのコードを使用してそれらを注文します。

$args=array(
       'showposts'=>5,
       'category'=> $listCatId[1],
       'orderby'=> $categoryThumbnailList_OrderType,
       'order'=> $categoryThumbnailList_Order

       );
      $myposts = get_posts( $args);

ここで、プラグインに「ニュース」タグが含まれている場合にのみ投稿を表示するようにしました。だから私はニュースタグを次のようにしました:

$args=array(
      'tag' => 'news',
      'showposts'=>5,
      'category'=> $listCatId[1],
      'orderby'=> $categoryThumbnailList_OrderType,
      'order'=> $categoryThumbnailList_Order

       );
       $myposts = get_posts( $args);

「ニュース」タグが含まれている場合、これにより5件の投稿が正常に表示されます。しかし、ここで問題が...

このプラグインを 1 つのページで複数回使用します。したがって、上記のショートコードを別のカテゴリ ID で使用すると、ニュース カテゴリ以外に「ニュース」でタグ付けされた投稿がないため、プラグインはそれぞれのカテゴリの投稿を表示しません。:(

この問題を修正し、プラグインが「ニュース」タグの付いたニュース投稿のみを表示し、他のカテゴリの投稿を適切に表示するようにするには...簡単な if / else ステートメントを設定してみました..

$args=array(
      'tag' => 'news',
      'showposts'=>5,
      'category'=> $listCatId[1],
      'orderby'=> $categoryThumbnailList_OrderType,
      'order'=> $categoryThumbnailList_Order
       );

$targs=array(
  'showposts'=>5,
  'category'=> $listCatId[1],
  'orderby'=> $categoryThumbnailList_OrderType,
  'order'=> $categoryThumbnailList_Order

    );

if ( tag == true ) {
$myposts = get_posts( $args);
}

else {
$myposts = get_posts( $targs);
}

これにより、ニュース投稿が正常にフィルタリングされ、「ニュース」でタグ付けされた投稿のみが表示されました..しかし、他のカテゴリの投稿は取得されません. :(

この if / else ステートメントを修正する方法や、コードを変更してプラグインが「ニュース」タグの付いたニュース投稿のみを表示し、他のカテゴリの投稿を適切に表示する方法を誰かが知っている場合は、私に記入してください! :)

4

1 に答える 1

1

これは間違っているように見えます-あなたが:を見逃しているようです$

if ( tag == true ) {

ただし、タグのショートコードに別のパラメーターを追加する方が柔軟だと思います。存在する場合は、それを使用してください。このようなもの:

$args = array(
    'showposts' => 5,
    'category'  => $listCatId[1],
    'orderby'   => $categoryThumbnailList_OrderType,
    'order'     => $categoryThumbnailList_Order
);

if ($tag) { // tag from your shortcode
    $args['tag'] = $tag;
}

$myposts = get_posts( $args);

おそらく、ショートコードパラメータの命名を開始する必要があります。詳細についてはコーデックスをチェックしてください。

于 2012-12-02T08:45:14.073 に答える