0

カスタム投稿タイプとして動画を設定し、この投稿タイプ内のカテゴリとして音楽、コマーシャル、プロモーションを設定しています。

wordpress バックエンドの動画投稿タイプ ページにカスタム メタ ボックスを表示する機能があります。ユーザーは、YouTube ビデオの ID または Vimeo ビデオの ID を入力できます。wordpress は、ID のビデオをカスタム投稿タイプ ページに表示します。ユーザーが動画のカスタム投稿タイプに新しい投稿を追加し、それを指定したカテゴリのいずれかに割り当てると、wordpress にさまざまな動画を表示させます。現時点で私が持っているコードは、ID が指定されていないにもかかわらず、各投稿に同じビデオを表示しているため、やりたいことを実行していません。たとえば、音楽投稿ページでは、カテゴリ音楽を割り当て、フロントエンドに表示される vimeo ビデオ ID を配置しましたが、プロモーションとコマーシャルに同じビデオが表示され、それが発生したくありません。

<?php

$args = array( 'post_type' => 'videos', 'posts_per_page' => 20, 'orderby' => 'date', 'order' => 'ASC' );
                    $loop = new WP_Query( $args );
                    while ( $loop->have_posts() ) : $loop->the_post();
//$args = array( 'post_type' => 'videos', 'posts_per_page' => 20, 'orderby' => 'date', 'order' => 'ASC' );
$ytubeID = get_post_meta($post->ID, '_youtubeID', true);
$vimID = get_post_meta($post->ID, '_vimeoID', true);
if ($ytubeID || $vimID){
if ($ytubeID){

echo '<iframe title="YouTube video player" class="youtube-player" type="text/html" src="http://www.youtube.com/embed/'.$ytubeID.'"  allowfullscreen="true" frameborder="0" width="640" height="390">';

echo '</iframe>';
} elseif ($vimID){
echo '<br />';
echo '<iframe src="http://player.vimeo.com/video/'.$vimID.'" width="640" height="390" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
}//end if yutbeID or vimIDthe_excerpt(); //excerpt added for information
}

endwhile;
                    wp_reset_query();

?>
4

1 に答える 1

1

現在の投稿カテゴリに基づいてビデオを表示

<?php

    $args = array( 'post_type' => 'videos', 'posts_per_page' => 20, 'orderby' => 'date', 'order' => 'ASC' );

    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();

        //$args = array( 'post_type' => 'videos', 'posts_per_page' => 20, 'orderby' => 'date', 'order' => 'ASC' );
        $ytubeID = get_post_meta($post->ID, '_youtubeID', true);
        $vimID = get_post_meta($post->ID, '_vimeoID', true);

        $videos_categories = array();           // ARRAY CONTAINING ALL CATEGORY ID ASSIGNED TO THIS POST
        $videos_cat_id = get_the_category(); // GET ALL CATEGORIES OBJECT ASIGNED TO CURRENT POST

        foreach($videos_cat_id as $videos_catid){
            $videos_categories[] = $catid->cat_ID;
        }
        $videos_cat_to_check = get_cat_ID( $videos_cat_name  ) // EXAMPLE get_cat_ID( 'music'  ) 



        if ($ytubeID || $vimID){
            if ($ytubeID && in_array($videos_cat_to_check,$videos_categories)){ // CHECK IF CURRENT POST HAS CATEGORY MUSIC 

                echo '<iframe title="YouTube video player" class="youtube-player" type="text/html" src="http://www.youtube.com/embed/'.$ytubeID.'"  allowfullscreen="true" frameborder="0" width="640" height="390">';

                echo '</iframe>';
                } elseif ($vimID){
                echo '<br />';
                echo '<iframe src="http://player.vimeo.com/video/'.$vimID.'" width="640" height="390" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
                }//end if yutbeID or vimIDthe_excerpt(); //excerpt added for information
        }

    endwhile;
    wp_reset_query();

    ?>
于 2013-09-27T10:35:21.807 に答える