在Wordpress中汇集PHP和AJAX以实现YouTube视频

时间:2017-11-28 18:15:02

标签: javascript php jquery ajax wordpress

我有一个功能可以将YouTube视频转到我的WordPress页面。

function get_official_trailers() {
    global $post;

    $videoID = get_post_meta($post->ID, 'video_url', true);
    $season_number = 1;

    if ($videoID != "") {
        $videoID = explode(",", $videoID);
        foreach ($videoID as $videoID_singular) {
            echo '<div class="videoContainer">';
            echo "<h3 title='off-trailer-title'>" . (get_post_meta( get_the_ID(),
            'show_name', true )) . " Season " . $season_number++ . " Official
            Trailer</h3>";
            echo wp_oembed_get( 'http://www.youtube.com/watch?v=' .
            $videoID_singular );
            echo '</div>';
        }

    }
}

此功能可让我从WP自定义字段中获取此视频网址的一部分,如 5hAXVqrljbs ,然后将其添加到&#34; http://www.youtube.com/watch?v=,&#34;如果WordPress自定义字段字符串中有多个参数,则将我的视频分开,最后在一个页面上显示所有预告片。

但问题是我需要通过点击按钮来实现这个想法。

我已经创建了AJAX功能

jQuery(document).ready(function($) {

    $('.mybutton').click(function () {
        var post_id = $(this).data('postid');
        var postData = {
            action: 'get_trailers',
            post_id: post_id,
        }

        $.post( ajaxurl, postData ).done(function(result) {
            $('.result_area').wrapInner('<div class="videoContainer"> </div>');
            $('.result_area').html(result);
        });

    });

}) 

当然,我已将其添加到WordPress

add_action('wp_ajax_nopriv_get_trailers', 'my_fun');
add_action('wp_ajax_get_trailers', 'my_fun');

function my_fun() {
    $post_id = filter_input( INPUT_POST, 'post_id' );
    $pt = get_post_meta($post_id, 'video_url', true);
    wp_send_json($pt);
    wp_die();
}

目前,我设法实现的只是通过AJAX从WP Custom Fields获取数据。但我无法弄清楚如何完成我最初的PHP函数的整个想法。

因此,我的最终目标是:

  1. 我按下按钮.mybutton(已完成);
  2. 我从自定义字段中获取数据(已完成);
  3. 将其作为JSON发送给AJAX(已完成);
  4. 我通过.mybutton点击获取这些数据;
  5. 将我的数据从dMgElg_aEuI,5hAXVqrljbs分离到

    https://www.youtube.com/watch?v=5hAXVqrljbs

    https://www.youtube.com/watch?v=dMgElg_aEuI

  6. 我不知道如何在jQuery中执行此操作。

    1. 在div videoContainer中显示我的2(3,4,5)个单独的预告片。我不知道如何在jQuery中实现wp_oembed_get。

0 个答案:

没有答案