1

私は現在、ミックスをSoundcloudにアップロードして共有するDJの友人のためにWebサイトに取り組んでいます.

カスタム投稿タイプを使用するのではなく、イベント側を処理するために、標準の投稿画面に独自のメタ フィールドを追加し、設定されている場合はイベント情報を表示するように投稿を設定し、投稿を通常どおり表示するようにしました。そうでない場合。完全なコード、関連部分:

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

これに加えて、彼のミックスを処理するために、私はカスタム ポスト タイプをセットアップしました (彼はミキサーとターンテーブルの外ではあまり技術に精通していないため、一般的に彼が区別しやすくするためです)。カスタム メタ フィールドを追加して、ミックスが録音された場所 (会場ごと) とミックスへの彼のサウンドクラウド URL (プラグインを使用するのではなく、ミックスを投稿に自動的に埋め込むために使用されます)。データの表示を処理するカスタム ループとsingle-mixes.phpページを作成しました。これは基本的に元のループ (loop-mixes.php何が何であるかがわかるように名前が変更されています) ですが、 file が含まれています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 に答える