将交互式地图集成到WordPress自定义帖子类型中

时间:2012-03-04 作者:toomanyairmiles

不久前,我使用Ian Lunn\'s BBC News Map, 和自定义字段来设置每个区域的html。看起来是这样的:-

enter image description here

我现在正在尝试将其与自定义帖子类型集成,其想法是每个地图区域将成为一个类别,其下面是该类别中的帖子列表(图片中的项目1、项目2)。

我找到了显示custom post type by category, 但我的模板是这样的

<!--nw-->
<div id="nw" class="counties-container">
<h2>North West</h2>
<p class="nw-t"><?php if($data = get_post_meta($post->ID, \'North-West\', true)) { echo $data; } ?></p>
</div>

<!--ne-->
<div id="ne" class="counties-container">
<h2>North East</h2>
<p class="nw-t"><?php if($data = get_post_meta($post->ID, \'North-East\', true)) { echo $data; } ?></p>        
</div>
每个部分都需要自定义代码。有没有一种方法可以让我按类别显示帖子,并保持模板代码现在的样子,或者我应该重写模板,以便单个模板可以显示所有区域。

提前感谢。。。

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

最简单的方法是使用一个函数,该函数接受一个区域分类术语作为参数,并输出一个包含该术语的帖子列表(即“在该区域”)。因此,您的模板如下所示:

<!--nw-->
<div id="nw" class="counties-container">
<h2>North West</h2>
<p class="nw-t"><?php my_posts_by_region(\'nw\'); ?></p>
</div>
我假设“nw”是西北地区的术语名称(slug)。然后需要定义函数(我建议为该函数创建自己的插件,但如果必须,可以使用functions.php):

下面我假设您的帖子类型为“cpt\\u name”,区域分类名称为“region”。

  <?php
    function my_posts_by_region($term=\'\'){
         //select (5 say) posts in this region (term), of some custom post type
         $posts = get_posts(array(
            \'post_type\' => \'cpt_name\',
            \'taxonomy\' => \'region\',
            \'term\' => $term,
            \'numberposts\' => 5
        ));
        if(!empty($posts)){
            echo \'<ul>\';
            global $posts;
            foreach($posts as $post): 
                setup_postdata($post); 
                //Display post title
                echo \'<li>\'.get_the_title().\'</li>\';
            endforeach; 
            echo \'</ul>\';
        }
    }
    ?>
请注意,这是未经测试的

结束

相关推荐