Web」カテゴリーアーカイブ

インターネット全般に関するカテゴリーです。

JavaScriptでHTML5の<video>を操作する方法

HTML5で追加された<video>タグを使うと簡単に動画を表示することができます。

<video id="video" src="video.mp4"></video>

標準では再生や一時停止などを行う操作パネルが表示されていませんが、controlsを追加することで、操作パネルを表示することもできます。

<video id="video" src="video.mp4" controls></video>

この<video>をJavaScriptから操作したい場合は次のような感じで実装できます。

<video>を再生する

var element = document.getElementsById('video');
element.play();

<video>の一時停止する

var element = document.getElementsById('video');
element.pause();

他、特定の位置にシークしたり、ボリュームを調整したりといった操作もJavaScriptからできるようになっています。詳細はリンク先などを確認してみてください。

リンク

HTMLMediaElement – Web APIs | MDN
https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement

<video>: The Video Embed element – HTML: HyperText Markup Language | MDN
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Video

WordPressのスパム対策として投稿者のURLをチェックする方法

WordPressを使っていると日常的にスパムコメントが送信されてきます。
そして、そのほとんどはサイト(コメント投稿者のURL)に何らかのURLが入力されています。

これを逆手に取って、サイト(コメント投稿者のURL)欄にURLが入力されていればブロックするというfancyなスパム対策を考えてみました。

※通常はCaptchaプラグインとかを使うのがおすすめですが、いろいろな物を導入したくないという場合用です。

手順

導入は手順簡単です。
functions.phpあたりに以下の内容を追加してください。

add_filter( 'pre_comment_approved', 'example_filter_handler', 99, 2 );

function example_filter_handler( $approved, $commentdata )
{
  if ( $commentdata['comment_author_url'] != "" ) {
    return new WP_Error();                                                                      
  }
  return $approved;                                                                             
}  

return new WP_Error();の部分をreturn 'spam';とすればスパムフォルダに、return 'trash';とすればごみ箱フォルダに分類することもできます。

一般のコメント投稿者向けに注意書き

スパムでない場合でもURL付きコメントを送信される場合もありますので、このfilterを導入する場合はひとこと注意書きを付けておいた方が無難かと思います。

もしくは、スタイルシートでURL欄を消してしまってもいいかと思います。

.comment-form-url { display: none }

リンク

pre_comment_approved | Hook | WordPress Developer Resources
https://developer.wordpress.org/reference/hooks/pre_comment_approved/

.htaccessで特定ボットのアクセスを拒否する書き方

最近、「SemrushBot」「Linespider」「BLEXBot」あたりのボットが活発に活動しているようで、Webサーバーに大量のログが残っていました。検索エンジン関係であればボットのアクセスも必要経費と見なせますが、SEO系ボットによるアクセスはサーバーの負荷になるだけなので、余り嬉しくありません。

ということで、特定のボットによるアクセスを拒否したい場合は.htaccessに以下の内容を追加してみると良いと思います。注)

SetEnvIf User-agent "SemrushBot" BadBot
SetEnvIf User-agent "Linespider" BadBot
SetEnvIf User-agent "BLEXBot" BadBot
Deny from env=BadBot

robots.txt

User-agent: SemrushBot
Disallow: /

User-agent: Linespider
Disallow: /

User-agent: BLEXBot
Disallow: /

のようにする方法もありますが、robots.txtを見ないボットもあり一々調べるのも面倒ですから、.htaccessが使えるサーバーであれあば.htaccessで拒否する方が望ましいと思います。


注) SemrushBot、Linespiderなどの文字列はアクセスログからユーザーエージェントを調べてください。(ユーザーエージェントの一部に該当文字列が含まれていれば拒否する設定になっています。)