フィルタとは?

WordPress開発では、フィルターを使用してWordPressの機能を追加または変更できます。これは、WordPressが提供するデータを受け取り、それを別のものに変更してから、再度渡すことによって行われます。

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

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

WordPressにおけるフィルターとは?

WordPressにおけるフィルターとは何ですか?

フィルターは、WordPressウェブサイトの特定の関数のデフォルトの動作を変更します。これは、受信したデータを操作し、ブラウザに表示される前にそのデータをWordPressに返すことによって行われます。

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

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

  • add_filter(): これは、フックに関数をアタッチします
  • remove_filter(): これは、指定されたフィルターフックにアタッチされた関数を削除します
  • doing_filter(): 現在実行中のフィルターを検出します
  • has_filter(): フィルターが登録されているかどうかを確認します

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

Note: If you’re a beginner, then we strongly caution against editing any WordPress files. Only experienced users who feel comfortable with editing the functions.php file and have some knowledge of PHP should try this.

初心者は、実行したいタスクを実行するためにプラグインを使用するか、専門家にコードの編集を依頼する必要があります。

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のヒント、トリック、アイデアに関する記事の追加資料リストも以下をご覧ください。

このガイドがお役に立った場合は、WordPressのビデオチュートリアルについては、YouTubeチャンネルにご登録ください。また、TwitterFacebookでもフォローできます。

関連記事

究極のWordPressツールキット

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