the_contentの前後およびカスタム投稿タイプでコンテンツを追加する方法
公開: 2020-01-09WordPressサイトのページと投稿で、ページコンテンツまたは投稿コンテンツの後にコンテンツを追加することをお勧めします。 このようなコンテンツは、すべてのページまたは投稿、あるいはその両方、またはカスタム投稿タイプで必要になる場合があります。 このような場合、WordPressテーマまたはプラグインのページテンプレートの_content関数の前後にコンテンツを追加するフィルターを使用する必要があります。 幸いなことに、今日は、サイトを壊さずにこれを実行する最も簡単な方法を説明します。
投稿コンテンツの後に追加するコンテンツの例
良い例は、アフィリエイトの開示やコメントポリシーについての簡単なメモを訪問者と共有したい場合です。
投稿またはページを公開するたびにこのコンテンツを入力する代わりに、フィルターを使用して自動的に入力することができます。
時間を節約できるだけでなく、この種のコンテンツを追加するたびにタイプミスを防ぐことができます。 WordPress開発者でない場合は、このスニペットをfunctions.phpファイルに簡単に追加して、コンテンツをそれぞれのコンテンツに置き換えることができます。 将来的には心配する必要はありません。
WordPressでページまたは投稿コンテンツの後にコンテンツを追加する
WordPressテーマを作成したり、WordPressテーマをカスタマイズしたりする場合、 the_contentの最後にコンテンツを追加する必要がある場合があります。 これは、各投稿の最後に追加する必要がある特定の詳細を含むカスタムメタフィールドまたはカスタム投稿タイプを使用している場合に特に一般的です。
get_post_meta 、 get_user_meta 、またはget_optionを使用して、特定の投稿またはユーザーのデータを取得してから、_content関数の後に追加することができます。
the_contentの後にコンテンツを追加する必要がある場合があります。 the_contentの後にコンテンツを追加する方法を段階的に説明することで、簡単にできるようにしたいと思います。
新しいコンテンツを追加するには、the_contentの後にフックをフィルタリングします
明らかに、WordPressページにコンテンツを追加するには、フィルターフックがどのように機能するかを理解する必要があります。 理想的には、この投稿で明確に説明されているように、WordPressにはアクションフックとフィルターの2種類のフックがあります-WordPress do_actionフックとフィルターの適用、または少なくともテーマのfunctions.phpファイルを編集する方法を知っている必要があります
したがって、出力を返す前に、ページのコンテンツをフィルタリングしてから新しいコンテンツを追加するフィルターが必要です。
WordPressのthe_contentの後にコンテンツを追加する
まず、次のようにフィルターを作成する必要があります。
add_filter( 'the_content'、 'add_content_after');
コールバック関数には、the_contentの後に追加するコードが含まれているはずです。また、コールバック関数に$ contentパラメーターを渡して、フィルター処理して返すようにする必要があります。
関数add_content_after($ content){ $ after_content = "コメントポリシーの例"; $ fullcontent = $ content。 $ after_content; $ fullcontentを返します。 }
したがって、この場合、 $ after_contentを追加すると、次の画像のように表示されます。
コード内の$ after_contentの値をメッセージに置き換えて、完全なスニペットをfunctions.phpに追加すると、コンテンツがコンテンツの後に追加されます。 結合されたコードスニペットは次のとおりです。
add_filter( 'the_content'、 'add_content_after'); 関数add_content_after($ content){ $ after_content = "投稿コンテンツ後のコメントポリシーの例"; $ fullcontent = $ content。 $ after_content; $ fullcontentを返します。 }
WordPressページまたは投稿でthe_contentの前にコンテンツを追加する
状況によっては、 the_contentの前にコンテンツを追加したい場合があります。 たとえば、最近ペットのWebサイトを構築していたとき、下の画像に示すようにコンテンツを表示する前に、犬の品種の詳細をリストする必要がありました。
このプロジェクトでは別のアプローチを使用しましたが、 the_contentの前にコンテンツを表示する必要がある場合でも、上記で共有されているフィルターを使用します。唯一の違いは、 $ fullcontent変数を結合する場合です。
この場合、以下に示すように、最初に表示するコンテンツから始めます。
add_filter( 'the_content'、 'add_content_before'); 関数add_content_before($ content){ $ before_content = "コンテンツを投稿する前のコメントポリシーの例"; $ fullcontent = $ before_content。 $ content; $ fullcontentを返します。 }
以下の画像で強調表示されているように、出力が表示されます。
WordPressページまたは投稿でthe_contentの前後にコンテンツを追加する
また、 the_contentの前後にコンテンツを表示するという組み合わせのシナリオを作成することもできます。これは、次のコードで実現できます。
add_filter( 'the_content'、 'add_content_before_and_after); 関数add_content_before_and_after($ content){ $ before_content = "投稿コンテンツの前後のコメントポリシーの例"; $ after_content = "投稿コンテンツの前後のコメントポリシーの例"; $ fullcontent = $ before_content。 $ content。 $ after_content; $ fullcontentを返します。 }
以下の画像で強調表示されているように、出力が表示されます。
the_contentの前後およびカスタム投稿タイプにコンテンツを追加する
特定のカスタム投稿タイプにこのコンテンツのみを追加する場合は、カスタム投稿タイプを表示しているかどうかを判断するロジックを追加できます。表示している場合はコンテンツを追加し、そうでない場合はデフォルトのthe_contentを返します。
この場合、カスタム投稿タイプの名前が「books」の場合、コードは次のようになります。
//特定のカスタム投稿タイプページテンプレートに新しいコンテンツを追加する4つのステップ add_filter( 'the_content'、 'add_new_content_after_books_custom_post_type'); 関数add_new_content_after_books_custom_post_type($ content){ // 1)単一の投稿を使用していて、投稿の種類が本と等しいかどうか、つまりカスタム投稿の種類のスラッグかどうかを確認します if(is_singular( "books")){ // 2)新しいコンテンツを変数に追加します $ new_books_content = "これは、Booksカスタム投稿タイプの後に追加される新しい本のコンテンツです" $ aftercontent = $ new_books_content; $ fullcontent = $ content。 $ aftercontent; // 3)条件が真の場合、カスタム投稿タイプを初めて返す $ fullcontentを返します。 }それ以外{ // 4)これが他のページであるか、本以外の投稿である場合、cptは追加のコンテンツなしでデフォルトのthe_contentを返します $ contentを返します。 } }
まとめ
この投稿で概説したように、 the_contentの後または前にコンテンツを追加することは困難な作業ではないはずです。コードスニペットをテーマfunctions.phpファイルにすばやくコピーすれば、機能するはずです。
プロのWordPress開発者として、WordPressアクションフック、特にフィルターフックについてさらに学ぶことが役立つ場合があります。 このチュートリアルがお役に立てば幸いです。また、他の開発者や友人と共有してください。