在Wordpress中使用If / Else语句的多个$ GetPosts?

时间:2012-12-01 22:37:55

标签: php wordpress if-statement wordpress-plugin

我在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个帖子。但这是问题......

我将在一个页面上多次使用此插件。因此,当我使用上面列出的具有不同类别ID的短代码时,插件不会显示相应类别的帖子,因为除了新闻类别之外没有标有“新闻”的帖子。 :(

要解决此问题,并使插件只显示带有“新闻”标签的新闻帖子,同时仍然正确显示其他类别的帖子...我已经尝试设置一个简单的if / else语句..就像这样:< / p>

$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语句或更改代码以使插件仅显示带有“新闻”标签的新闻帖子,同时仍然正确显示其他类别的帖子,请填写我的内容! :)

1 个答案:

答案 0 :(得分: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);

您可能需要开始命名短代码参数。查看the codex了解详情。