我有一个 Wordpress 安装。我的网站上有大约 3 种自定义帖子类型。当我进行搜索时,所有帖子类型的结果都会显示在前端的一页上。有些帖子类型在内容方面与其他帖子类型完全不同,因此结果看起来有点有趣。
有没有办法根据帖子类型将结果拆分为选项卡?我想将结果保留为现在的默认方式(所有结果),然后在右侧有选项卡根据它们所属的帖子类型过滤掉不同的结果。
我在这里创建了一个 jpeg 来帮助解释我想要做什么。
谢谢
http://f.cl.ly/items/110S2K1A0T3m290Y0C14/Filter_post_Types.jpg
更新 1: 只是想在代码方面添加更多信息
我打算使用简码作为标签
[tabs]
[tab]All Search Results[/tab]
[tab]Post Type 1 Results[/tab]
[tab]Post Type 1 Results[/tab]
[tab]Post Type 1 Results[/tab]
[tab]
或在 PHP 模板中,我也可以通过
<?php
echo do_shortcode('[tabs style="boxed" id="searchTabs"]
[tab title="Post Type 1"]Post Type 1 Results[/tab]
[tab title="Post Type 2"]Post Type 2 Results[/tab]
[tab title="Post Type 3"]Post Type 3 Results[/tab]
[/tabs]');
?>
我在想这里有一些东西可以帮助我,但不知道如何实现它http://codex.wordpress.org/Template_Tags/get_posts
更新 2: 我在另一个论坛上收到的其他建议是尝试这样的代码,但我似乎无法将它正确地实现到我的搜索模板 php 中,这里是http://pastie.org/4248751
建议的代码是
<?php
$the_slug = 'my_slug';
$args=array(
'name' => $the_slug,
'post_type' => 'custom_post_Type_1',
'post_status' => 'publish',
'numberposts' => 1
);
$my_posts = get_posts($args);
$the_slug2 = 'my_slug2';
$args2=array(
'name' => $the_slug2,
'post_type' => 'custom_post_Type_2',
'post_status' => 'publish',
'numberposts' => 1
);
$my_posts2 = get_posts($args2);
echo do_shortcode('[tabs style="boxed" id="searchTabs"]
[tab title="Post Type 1"]
<?php //This code is for first post type
foreach( $myposts as $post ) : setup_postdata($post); ?>
<li><a>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
[/tab]
[tab title="Post Type 2"]
<?php //This code is for second post type
foreach( $myposts2 as $post ) : setup_postdata($post); ?>
<li><a>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
[/tab]
[/tabs]');
?>