【WordPress】埋め込み動画から「ダウンロード」を無くすカスタマイズ
SWELLマニアのかんた(@swell_mania)です。
今回は、特定のテーマではなくWordPressコアブロックの1つ「動画ブロック」のカスタマイズについての記事になります。
動画ブロックで埋め込んだ動画は、標準の仕様だと「ダウンロード」というオプションが表示されます↓
このボタンだけでなく、動画上で右クリックを押しても、ダウンロードできてしまう仕様です↓
名前の通りなんですがダウンロードをクリックすると、ユーザーが動画を自身の環境に保存できる仕組みになっています。
サイトによっては、「パクられるからダウンロードを消したい」といったケースがあります。
最近見かけた有料テーマのフォーラムにも同様のトピックがありました。
どうやって次の対策をするか?
ダウンロードを消す
動画上で右クリックをさせない
これが今回のテーマです。
既に埋め込んでいる動画を含めて、「ダウンロード」を一括で非表示にしつつ、動画上で右クリックを禁止にする方法を紹介します。
カスタマイズ環境
WordPress:6.3~
WordPress6.3から導入された新クラス WP_HTML_Tag_Processorを利用します。
カスタマイズの内容
作業時間は10秒です。
テンプレートのカスタマイズはしません。
フックを追加するだけですので子テーマ化していれば、functions.phpにコードを貼り付けるだけです。
子テーマ化していない環境であればCode Snippetsプラグインなどにコードをコピペする作業で完了します。
記事更新履歴
2024/02/28 記事公開
バックアップ
フックを追加するだけですが、心配な人はバックアップをしておきましょう。
子テーマのfunctions.phpにコードを追加する場合は、functions.phpをコピーしておきましょう。
Code Snippetsプラグインを使う場合で、うっかりミスしそうな人は、FTPアカウント、データベースにアクセスできるツール(phpMyAdmin)を用意しておくと良いでしょう。
カスタマイズ
いざカスタマイズです。
次のコードを子テーマのfunctions.phpに貼り付けます。
function add_no_download( $block_content, $block ) {
if ( 'core/video' === $block['blockName'] ) {
$w = new WP_HTML_Tag_Processor($block_content);
$w->next_tag('video');
$w->set_attribute('controlslist', 'nodownload');
$w->set_attribute('oncontextmenu', 'return false;');
return $w->get_updated_html();
}
return $block_content;
}
add_filter( 'render_block_core/video', 'add_no_download', 10, 2 );
以上で作業終了です。
フロントを確認すると、「ダウンロード」が消えています↓
動画上で右クリックもできなくなっています。
仕組みを解説
カスタマイズの仕組みについてです。
function add_no_download( $block_content, $block ) {
if ( 'core/video' === $block['blockName'] ) {
$w = new WP_HTML_Tag_Processor($block_content);
$w->next_tag('video');
$w->set_attribute('controlslist', 'nodownload');
$w->set_attribute('oncontextmenu', 'return false;');
return $w->get_updated_html();
}
return $block_content;
}
add_filter( 'render_block_core/video', 'add_no_download', 10, 2 );
new WP_HTML_Tag_Processorを使い、動画ブロックから「ダウンロード」と「右クリックを表示する」という属性を消すという処理をしています。
このコードによりすでに埋め込んである動画と、今後埋め込む動画からダウンロードボタンが消えて、動画上で右クリックのオプションが表示されなくなります。
後書き
WordPressの埋め込み動画からダウンロードを消す方法と、動画上で右クリックができないようにする方法を紹介しました。
Webの仕組み上、再生される動画ファイルはブラウザに読み込まれてしまうのでブラウザの保存データを漁れば動画を保存することは可能です(完全にダウンロードを防ぐことはできません)。
ですが、少しでも「面倒だな」と思わせることで、貴重なコンテンツの盗難を防ぐ抑止効果を上げることが期待できます。