在单个WordPress帖子页面上显示基于自定义元字段的相关帖子?

时间:2013-01-18 20:47:18

标签: php wordpress

我目前正在为我的DJ朋友制作一个网站,他将他的混音上传到Soundcloud分享,他也将使用他的网站发布他的混音(通过Soundcloud)并发布活动。

要处理事件方面,而不是使用自定义帖子类型,我只是将自己的元字段添加到标准帖子屏幕,并设置帖子以显示事件信息(如果已设置),并显示通常如果没有这些帖子。 Full code,相关部分:

global $wp_query;
$postid = $wp_query->post->ID;
$event_venue = get_post_meta($postid, 'event_venue', true);

除此之外,为了处理他的混音,我设置了一个自定义的帖子类型(通常是为了让他更容易区分,因为他在混音器和转盘之外不是非常技术)和自定义元字段允许他可以添加混音的位置(场地方式)和混音的混音(用于自动将混音嵌入帖子中,而不是使用插件)。我创建了一个自定义循环和single-mixes.php页面来处理数据的显示,这实际上是原始循环(重命名为loop-mixes.php所以我知道它是什么)但包含一个文件mix_data.phpFull code,相关部分:

global $wp_query;
$postid = $wp_query->post->ID;
$mix_venue = get_post_meta($postid, 'mix_venue', true);

现在,我的问题。我想在单个帖子页面中将$mix_venue中保存的数据与$event_venue设置的每个其他帖子进行比较,并显示匹配的帖子(即如果用户是观看混音后,他们就可以看到在录制场地中举行的任何即将举行的活动(事实上,任何过去的活动)。

,我正在教自己WordPress,我真的不完全确定从哪开始。

1 个答案:

答案 0 :(得分:0)

我看到你解决了它,但我会建议一种可重复使用的方法。

在您的主题functions.php中放置此功能(get_posts()function print_event_venues( $mix_venue ) { $args = array( 'numberposts' => -1, 'post_type' => 'post', 'post_status' => 'publish', 'meta_key' => 'event_venue', 'meta_value' => $mix_venue ); $posts = get_posts( $args ); // DO NOTHING if( !$posts ) return; foreach( $posts as $post ) { // DO YOUR HTML echo $post->post_title; } } ):

print_event_venues( $the_mix_venue );

然后,在任何模板中,只需调用它:{{1}}。

有用信息:full arguments list