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 个帖子。但问题来了……

我将在一页上多次使用这个插件。因此,当我使用上面列出的具有不同类别 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);

您可能需要开始命名您的简码参数。详情请查看codex

于 2012-12-02T08:45:14.073 回答