使用自定义帖子类型和分类创建短代码时出现问题

时间:2013-11-26 作者:Nick

我有一个自定义的帖子类型和一个自定义的分类法,用于对帖子进行分类。

我正在尝试开发一个短代码,使我能够输出属于特定用途的工作库帖子。我想这相当于一个类别归档查询,只是我希望能够在不同的页面上使用它。

代码如下所示:

function wg_album($wguse){ 
extract(shortcode_atts(
    array(\'use\' => \'work\'), $wguse)); 
    $args = array(
        \'post_type\'   => \'work-gallery\',
        \'tax_query\' => array(
                array(
                    \'taxonomy\' => \'use\',
                    \'field\' => \'slug\',
                    \'terms\' => $use
                )
            )
        );
$work_galleries = new WP_Query($args);
ob_start(); ?>
    <ul class="work-pages">
<?php foreach ($work_galleries as $work_gallery) { ?>       
        <li>
            <a href="<?php echo get_page_link( $work_gallery -> ID ); //the permalink?>">

                <?php echo get_the_post_thumbnail($work_gallery -> ID)//the featured image?>
                <h3><?php echo $work_gallery -> post_title ; ?></h3>

            <p> <?php echo $work_gallery -> post_excerpt ; ?></p>
            </a>
        </li>

<?php } ?>
    </ul>
<?php return ob_get_clean(); 
} ?>
我得到的不是像代码中那样的永久链接、标题、特色图片和摘录的输出,而是主机页的永久链接,迭代了40次!

我做错了什么?我认为问题出在查询中。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

这是一个非常破碎的循环。新的WP_Query 不是一个简单的数组foreach 结束这远比这复杂得多。尝试var_dump($work_galleries);.

幸运地WP_Query 提供使循环更容易的方法。

$work_galleries = new WP_Query($args);
if ($work_galleries->have_posts()) {
  while ($work_galleries->have_posts()) { // this replaces foreach
    $work_galleries->the_post(); // this sets up the post data so functions like the_title() work
    // now your code
  }
}

结束

相关推荐

Copy post taxonomy?

我是Wordpress的新手,我想做的是:创建一个分类法(课程),该分类法与POST一样有效,但有区别:我需要为课程添加一些字段(如课程成本、年龄跨度、课程每周的哪一天等)。我想我可以在帖子分类中添加自定义字段,但我想将“普通帖子”与“课程”分开。我在PHP编程方面有很多经验,但Wordpress对我来说是新的。我了解分类法和挂钩的概念,并且了解WP如何处理主题、子主题、插件等。我在安装了一个名为Simple Taxonomy的插件https://github.com/herewithme/simple-