1

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

为了处理事件方面的事情,而不是使用自定义帖子类型,我只是将自己的元字段添加到标准帖子屏幕,并设置帖子以显示事件信息(如果已设置),并正常显示帖子如果不。完整代码,相关部分:

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

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

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

现在,我的问题。我想在单个帖子页面中将保存的数据$mix_venue与已$event_venue设置的所有其他帖子进行比较,并显示那些匹配的帖子(即,如果用户正在查看混合,他们可以看到任何即将发布的在记录它的场地举行的活动(实际上是任何过去的活动)。

但是,我正在自学 WordPress,我真的不完全确定从哪里开始。

4

1 回答 1

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 );.

有用信息:什么时候应该使用 WP_Query、query_posts() 和 get_posts()?.

于 2013-01-18T22:13:04.757 回答