Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPBカップ
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

何ですか: フィルター

編集メモ: WPBeginner のパートナーリンクから手数料を得ています。手数料は編集者の意見や評価に影響を与えません。編集プロセスについて詳しく知る。

WordPressの開発において、フィルターはWordPressの機能を変更または拡張するために使用することができます。WordPressから提供されるデータを受け取り、それを別のものに変えて、また渡すのです。

フィルターはWordPressをカスタマイズ可能にする大きな特徴のひとつです。フィルターは、WordPressのイベントに「フック」されるPHPコードの断片です。イベントがトリガーされると、フィルターがイベントフックによって生成されたデータ出力に適用されます。

プラグインやテーマの開発者によって広く使われている。しかし、もしあなたが開発者でないなら、ウェブからコード・スニペットを貼り付けて、あなたのサイトに新しい機能を追加することができます。これらの多くにはフィルターが含まれている。

What Is Filter in WordPress?

WordPressのフィルターとは?

フィルターはWordPressサイトの特定の機能の初期設定を変更します。これは、受け取ったデータを操作し、ブラウザーに表示される前にそのデータを WordPress に返すことで行います。

例えば、フィルターはテキストの切り捨て、コンテンツのフォーマットの変更、投稿日へのリンクの添付、ページ上のブロックの変更、データベースから取得したオプションの変更などに使用できます。また、抜粋の長さを変更したり、関連投稿をメインコンテンツの下に配置したり、WooCommerceの価格を変更したりすることもできます。

フィルターはadd_filter()関数を使って追加します。WordPressにはアクションを使用できる関数がいくつかありますが、最もよく使われるのはこれらの関数です:

  • add_filter(): 関数をフックに添付します。
  • remove_filter(): 指定したフィルターフックに添付された関数を削除します。
  • doing_filter(): 現在実行中のフィルターを検出します。
  • has_filter(): フィルターが登録されているかどうかを調べます。

フィルターはプラグインやテーマの開発者がWordPressに機能を追加するために使用します。オンラインチュートリアルからコードスニペットを追加することで、テーマをカスタマイズするためにフィルターを使用することもできます。

注:初心者の方は、WordPressファイルを編集しないよう強くお勧めします。functions.phpファイルの編集に慣れていて、PHPの知識がある経験豊富なユーザーだけが、この方法を試してください。

初心者は、実行したいタスクを達成するためにプラグインを使うか、コードを編集するプロに相談するべきだ。

WordPressサイトのコードを編集する前に、コーディングエラーに備えてサイトをバックアップしておくことをお勧めします。バックアッププラグインをお持ちでない場合は、WordPressバックアッププラグインを比較した投稿をご覧ください。

また、テーマファイルに直接コードを追加しないことをお勧めします。そうしないと、次回テーマを更新したときにカスタマイザーが失われてしまいます。

代わりに、WordPressにカスタムコードを追加するためのコードスニペットプラグインを使うか、サイト固有のプラグインを作成するか、親テーマの代わりに子テーマを作成してそれを修正する必要がある。

カスタマイザーを失うことなくWordPressテーマを更新する方法については、こちらのガイドをご覧ください。

フック、アクション、フィルターの違いは?

WordPressにおけるフィルターについて理解を深めるには、フィルターが他の2つのキーワード、フックとアクションとどのように関連しているかを確認することが役に立つ。これら3つのキーワードを一緒に理解することで、「フィルター」というキーワードを少し理解しやすくなるでしょう。

フックはWordPressプラグインとテーマ開発の基礎です。開発者がカスタムコードをWordPressの特定の場所に「フック」し、コアファイルを編集することなくWordPressの動作を変更できる場所です。

フックには2種類ある。

  • フィルターフックを使うと、何かを変更することができる。フィルターフックは、処理中のデータをインターセプトして、それを変更し、それを送り返すことができます。データベースやユーザーのブラウザーに送信される出力をフィルターするために使われる。
  • アクションフックは、何かを実行させます。テーマやプラグインが有効化されたとき、投稿が公開されたときなどのイベントのときに実行されます。アクションが実行された後は、情報を返す必要はありません。

これらのアクションフックとフィルターフックは、WordPress コア、テーマプラグインがどのように動作するかの基盤です。開発者が初期設定の WordPress イベント、フィルター、アクションを柔軟に変更できるよう、これらのフックは連携しています。

開発者は、他の開発者がプラグインやテーマを拡張できるように、独自のカスタムアクションやフィルターを作成することもできます。

WordPressフィルターの例

フィルターとはどのようなものでしょうか?いくつか例を挙げよう。

特定のカテゴリーに属する投稿が表示されたときに、画像アイコンを表示したいとしよう。このシナリオでは、投稿が特定のカテゴリーに属しているかどうかをチェックする関数を作成します。もしそうなら、画像を表示する。

次に、その関数をthe_contentイベントにフックします。これで、the_contentイベントが発生するたびに、我々の関数が自動的にトリガーされ、the_contentイベントの出力をフィルターするようになる。

// First we hook our own function with the_content event
add_filter( 'the_content', 'wpb_content_filter' );
 
// Now we define what our function would do.
// In this example it displays an image if a post is in news category.
function wpb_content_filter( $content ) {
    if ( in_category('news') )
        $content = sprintf('<img class="news-icon" src="%s/images/news_icon.png" alt="News icon" title="" />%s', get_bloginfo( 'stylesheet_directory' ), $content);
 
    // Returns the content.
    return $content;
}

WordPressフィルターの使用例をもうひとつ紹介しよう。

このサンプルコードでは、フィルターget_the_excerptに wpb_custom_excerpt関数を追加しています。

function wpb_custom_excerpt( $output ) {
  if ( has_excerpt() && ! is_attachment() ) {
    $output .= wpb_continue_reading_link();
  }
  return $output;
}
add_filter( 'get_the_excerpt', 'wpb_custom_excerpt' );

さらに詳しく知りたい方は、フィルターを使ったWordPressガイドをご覧ください。例えば、WordPressのフィルターを使って実用的な何かを実現する方法を紹介したガイドをいくつかご紹介します:

WordPressには多くの定義済みフィルターがあり、開発者はWordPressコアの特定の箇所に独自のコードを追加することができます。WordPress プラグイン API は、利用可能なフィルターフックの広範なリストを提供しています。

この投稿が WordPress のフィルターについてより詳しく知っていただく一助となれば幸いです。また、WordPress の便利なヒントやトリック、アイデアに関する関連投稿は、以下の「Additional Reading」リストをご覧ください。

このガイドを気に入っていただけたなら、WordPress動画チュートリアルのYouTubeチャンネルの購読をご検討ください。Twitterや Facebookでもご覧いただけます。

追加リーディング

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

究極のWordPressツールキット

ツールキットへの無料アクセス - すべてのプロフェッショナルが持つべきWordPress関連製品とリソースのコレクション!