主页/WordPress笔记/博客文章/综合文章/如何在 WordPress 中显示 YouTube 频道的最新视频

如何在 WordPress 中显示 YouTube 频道的最新视频

Bug编译狮

Bug编译狮

在 WordPress 中显示 YouTube 频道的最新视频可以通过多种方式实现,以下是其中的一种方法:使用 YouTube API 和 Gutenberg 插件。

步骤 1: 注册 YouTube API

首先,你需要注册并获取 YouTube API 的访问令牌。你可以从 Google Developers Console 创建一个新的项目,并按照文档指引完成注册和设置。

步骤 2: 安装 Gutenberg 插件

安装 Gutenberg 插件(如 Gutenberg),它允许你在 WordPress 文档页面上使用新的富文本编辑器。

步骤 3: 编辑文章或页面

打开你要添加 YouTube 视频的文章或页面,在 Gutenberg 富文本编辑器中输入以下代码:

[YouTube video="https://www.youtube.com/watch?v=VIDEO_ID"]

这里,“VIDEO_ID”是你从 YouTube 管理员账号中找到的视频 ID。例如,如果你有一个名为“my-video”的频道,ID 就是“my-video”。

步骤 4: 设置参数

在上述代码中,你可以选择是否显示视频标题、描述以及作者信息等额外细节。这些选项可以通过在 [YouTube] 标签内添加相应的参数来配置:

  • title: 显示视频标题。
  • description: 显示视频描述。
  • author: 显示视频发布者的信息。

示例代码

[YouTube title="我的最新视频" description="这是我在 YouTube 上发布的第一个视频。" author="我" width="640" height="360"]

使用效果

当您点击播放按钮时,会直接跳转到 YouTube 平台观看视频。如果您的站点没有启用 HTTPS,则可能需要在链接前加上协议头以确保安全连接。

请注意,这只是一个基本示例。实际应用中,您可能还需要处理一些错误情况,比如用户未登录、API 错误等。此外,为了提高用户体验,您可以考虑添加更多元的数据标签,如视频类别、发布日期等。

通过这种方式,您可以轻松地在 WordPress 文章或页面中嵌入 YouTube 视频,为用户提供丰富的多媒体体验。

黑板前的Bug语法讲师

黑板前的Bug语法讲师

教案标题:在 WordPress 中使用 YouTube 频道的最新视频

目标:

通过本课程,学生将学会如何在 WordPress 站点上设置和展示 YouTube 频道的最新视频。

课程结构:

  1. 引入
    • 明确主题。
  2. YouTube 频道简介
    • 基础了解 YouTube 频道及其功能。
  3. WordPress 设置
    • 创建 YouTube 视频插件。
  4. 安装和配置
    • 安装并配置 WordPress 视频插件。
  5. 更新视频列表
    • 更新 WordPress 视频插件以获取最新视频信息。
  6. 播放器设置
    • 设置 WordPress 视频插件以显示最新视频。
  7. 自定义选项
    • 自定义播放器样式、音量控制等。
  8. 测试与优化
    • 测试插件功能,确保一切正常工作。
  9. 总结
    • 强调重要步骤和最佳实践。

示例代码:

// 创建一个名为 "youtube_video" 的新插件文件夹
mkdir('wp-content/plugins/youtube-video');

// 创建一个名为 "plugin.php" 的新 PHP 文件
file_put_contents(
    'wp-content/plugins/youtube-video/plugin.php',
    "
    <?php

    class YoutubeVideo extends WP_Widget {

        public function __construct() {
            $widget_ops = array(
                'classname' => 'youtube-video-widget',
                'description' => esc_attr__( 'Display YouTube videos on your site.', 'your-plugin-title' ),
            );

            parent::__construct( 'youtube_video', esc_html__( 'YouTube Video Widget', 'your-plugin-title' ), $widget_ops );
        }

        public function widget($args, $instance) {
            extract($args);

            if ( !isset( $instance['url'] ) ) {
                return;
            }

            echo $before_widget;

            // 输出频道名称
            echo '<h3>' . esc_html( $instance['channel_title'] ) . '</h3>';

            // 输出频道描述
            echo '<p>' . esc_html( $instance['channel_description'] ) . '</p>';

            // 输出频道标签
            echo '<div class="youtube-channel-labels">';
            foreach ($instance['channels_tags'] as $tag) {
                echo '<a href="' . esc_url( $tag['url'] ) . '">' . esc_html( $tag['label'] ) . '</a>';
            }
            echo '</div>';

            // 输出频道封面图片
            if (!empty($instance['cover_image'])) {
                echo '<img src="' . esc_url( $instance['cover_image'] ) . '" alt="' . esc_attr( $instance['channel_title'] ) . '" />';
            } else {
                echo '<img src="' . esc_url( plugins_url( 'images/no-image.jpg', __FILE__ ) ) . '" alt="' . esc_attr( $instance['channel_title'] ) . '" />';
            }

            // 输出频道视频链接
            echo '<ul class="youtube-channel-videos">';
            foreach ($instance['videos'] as $video) {
                $video_id = $video['id'];
                $video_link = $video['link'];

                // 如果有视频ID,则输出视频链接
                if (!empty($video_id)) {
                    echo '<li><a href="' . esc_url( $video_link ) . '" target="_blank"><span class="play-button"></span></a></li>';
                }
            }
            echo '</ul>';

            echo $after_widget;
        }

        public function update($new_instance, $old_instance) {
            $instance = $old_instance;

            $instance['url'] = sanitize_text_field( $new_instance['url'] );
            $instance['channel_title'] = sanitize_text_field( $new_instance['channel_title'] );
            $instance['channel_description'] = sanitize_text_field( $new_instance['channel_description'] );
            $instance['channels_tags'] = sanitize_text_field( $new_instance['channels_tags'] );
            $instance['cover_image'] = sanitize_text_field( $new_instance['cover_image'] );

            return $instance;
        }

        public function form($instance) {
            $defaults = array(
                'url' => '',
                'channel_title' => '',
                'channel_description' => '',
                'channels_tags' => array(),
                'cover_image' => '',
            );

            $instance = wp_parse_args( (array) $instance, $defaults );

            echo "<input type='text' name='url' value='" . esc_attr( $instance['url'] ) . "' placeholder='YouTube URL'>";
            echo "<br>";
            echo "<input type='text' name='channel_title' value='" . esc_attr( $instance['channel_title'] ) . "' placeholder='Channel Title'>";
            echo "<br>";
            echo "<textarea rows='10' cols='40' name='channel_description' id='channel-description' placeholder='Description'>".esc_attr( $instance['channel_description'] )."</textarea>";
            echo "<br>";

            $tags = get_terms(array('taxonomy'=>'youtube_channel_tag'));
            echo "<select name='channels_tags'>";
            foreach ($tags as $tag) {
                echo "<option value='" . esc_attr( $tag->slug ) . "'>" . esc_html( $tag->name ) . "</option>";
            }
            echo "</select>";

            echo "<input type='text' name='cover_image' value='" . esc_attr( $instance['cover_image'] ) . "' placeholder='Cover Image'>";
        }

        public function back_to_admin_page() {
            header("Location: index.php");
        }

    }

    register_widget( 'YoutubeVideo' );

}
"
);

实践操作:

  • 在 WordPress 主题目录下创建或修改 functions.php 文件,添加以下代码:
    
    add_action('admin_menu', 'my_custom_plugin_page');
    function my_custom_plugin_page() {
    add_options_page('Your Plugin Name Here', 'Your Plugin Name Here', 'manage_options', 'your-plugin-name', 'my_custom_plugin_page_callback');
    }

function my_custom_plugin_page_callback() { ?>

<?php }

- 在 `wp-content/plugins/my-custom-plugin/wp-content/themes/theme-name/inc/` 目录下创建一个名为 `style.css` 的文件,并添加以下 CSS 样式来调整播放器外观:
```css
.youtube-video-widget {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    max-width: 300px;
}

.play-button {
    display: inline-block;
    background-color: #f44336;
    color: white;
    padding: 5px 10px;
    border-radius: 5px;
    cursor: pointer;
}
  • 将上述代码保存为 .php.css 文件后,分别上传到 WordPress 主题目录下的相应文件夹内。

以上步骤完成后,你可以在 WordPress 网站上的任意页面中插入此插件,并根据提示填写相关信息来展示 YouTube 频道的最新视频。