自定义帖子类型-显示特定帖子

时间:2014-06-30 作者:Bruno Kos

这是url:HOUSE 1

我有自定义的帖子类型“属性”。对于每个新属性,我可以选择“属性类型”、“属性状态”、“属性位置”taxomony。这个页面使用自己的模板,所以我想知道-我是否可以修改该模板的查询,以显示一个“属性位置”中与当前位置匹配的其他属性?

例如,如果我打开任何“House 1”(“House 1”是Property Location)属性,我不希望页面显示带有“House 2”属性位置的帖子,而只显示来自当前位置的帖子。

我尝试了一些组合使用http://generatewp.com/wp_query/ , 但我想不出来。不过,我相信这是一件很容易改变的事情。

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

如果你已经登上了你想要的房子的页面(在帖子的循环中),那么像这样的事情应该会奏效。我想这些值保存为post meta???

如果是这样的话,我必须做一些类似的事情,并设法做到这一点,尽管我相信有人可能会有更好的办法。

$ThisPostID = get_the_ID();  //simply gets the current post ID
$TheHouseLocation = get_post_meta( $ThisPostID, \'property_location\' ); //property_location is probably the meta key name this can be checked with a simple post meta inspector plugin. If so this gets the current \'location\' of the house being viewed

 $args=array(
        \'post_type\' => \'Properties\',
        \'post_status\' => \'publish\',
        \'meta_key\' => \'property_location\',
        \'meta_value\' => $TheHouseLocation,
        \'posts_per_page\' => -1,
        \'ignore_sticky_posts\'=> 1,
        );

 $ShowSomeHouses = new WP_Query($args);
 if ($ShowSomeHouses->have_posts()) {
//This bit happens if there are houses in same location look for the else below if there are none.
while ($ShowSomeHouses->have_posts()) : $ShowSomeHouses->the_post();
您可以使用以下调用循环查看帖子详细信息:the_title();the_content(); 在这里

或添加

$NearbyHouseIDs = get_the_ID(); //This should find the post id\'s of the houses in same location.
foreach ($NearbyHouseIDs as $nearbyhouse) {
中间的这一位使您有机会按照自己的意愿格式化显示或布局,但从听起来,您正在使用的模板中已经有一些布局。因为我不知道原始代码是什么,所以我不会在这里尝试重新创建它。这个$nearbyhouse 是该地区发现的每栋房屋的邮政ID号。然后,您可以调用自定义详细信息,如meta&;使用以下内容的其他信息get_post_meta( $nearbyhouse, $key, $single );

}
endwhile;
} else echo \'<p>There are no nearby houses to show at the moment</p>\';
wp_reset_query();  // Turns everything back to normal
免责声明:这只是一段写在博客上的代码-我没有测试过它,也没有声称自己是一个熟练或有天赋的程序员。

SO网友:leymannx

你说你的位置是分类的,对吗?所以我建议大家看看get_posts() 获取特定帖子的数组。你可以通过category 作为一个参数get_posts. 因此,您只需获取当前帖子的类别,然后将其作为get_posts().

也许你应该看看Flexible Posts Widget 然后,也可以将您想要的东西输出到您喜欢的任何小部件中。只需查看它附带的默认模板。我敢打赌,你很快就会明白这一点:)

结束

相关推荐