ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

会話型フォームからリンクを取得して使用する方法

はじめに

会話型フォームからリンクを取得し、テーマのPHPテンプレート内でこのリンクを使用しますか?簡単なPHPスニペットを使用すると、このパーマリンクを簡単に取得できるため、PHP echoステートメントを使用して、テーマのPHPテンプレートのいずれかにこのリンクを表示できます。このチュートリアルでは、このパーマリンクを取得し、PHPテンプレート内にリンクを出力する方法の各ステップを説明します。

フォームの作成

まず、会話型フォームを作成する必要があります。これについてサポートが必要な場合は、このドキュメントを確認してください

会話型フォームを作成する

次に、会話型フォームによって生成されたリンクを取得する必要があります。これを行うには、このスニペットをサイトに追加する必要があります。

サイトへのスニペットの追加についてサポートが必要な場合は、こちらのチュートリアルをご覧ください

/**
 * Get permalink from conversational forms.
 *
 * @link https://wpforms.com/developers/how-to-retrieve-and-use-the-link-from-conversational-forms
 */

function get_the_conversational_form_link( $form_id ) {

   // Form ID should be numeric.
   // Permalinks should be configured.
   if ( ! is_numeric( $form_id ) || empty( get_option( 'permalink_structure' ) ) ) {
      return;
   }

   $form      = wpforms()->form->get( $form_id );
   $form_data = wpforms_decode( $form->post_content );

   // Check if Conversational Form Mode is enabled.
   if ( empty( $form_data[ 'settings' ][ 'conversational_forms_enable' ] ) ) {
      return;
   }

   return esc_url( home_url( isset( $form->post_name ) ? $form->post_name : '' ) );
}

この関数はスタンドアロン関数であり、関数を呼び出すときに割り当てられる$form_idを受け取り、そのフォームの会話型フォームへのリンクを取得します。

PHPテンプレートのいずれかにecho get_the_conversational_form_link( $form_id );関数を使用すると、関数はその特定のフォームIDのパーマリンクを取得し、テンプレート内にリンクを出力します。

関数の使用

次に、この新しく作成した関数をテーマテンプレートのいずれかで使用する時間です。

PHPファイルを変更する前に子テーマを作成することを強くお勧めします。子テーマの作成に役立つ情報が必要な場合は、WPBeginnerの友人によるこのチュートリアルを確認してください。

このドキュメントの目的のために、すでに子テーマを作成しており、お気に入りのエディターを使用してテンプレートを編集します。

したがって、メインコンテンツの後、以前のステップで作成した会話型フォームへのリンクを表示するために関数を呼び出し、サイト上のすべての投稿ページの一番下に表示されるようにします。これが機能するためには、子テーマのsingle.phpテンプレートから新しい関数を呼び出します。

会話型フォームのリンクを表示したい子テーマのPHPテンプレートにこのコードを追加してください

<?php /** Time to get the permalink from the conversation form **/
            // Define the $form_id variable with the form ID we want to use
            $form_id = 718;
      ?>
			
      <p>Have you tried this recipe before? Let us know what you though! <a href="<?php echo get_the_conversational_form_link( $form_id ); ?>" title="Cajun Steak Bites Recipe" target="_blank">Click here to leave a review for this recipe.</a></p>

新しい関数とテキストをPHPテンプレートに配置したので、ブログのすべての単一ページで実際に確認できます。

これで、会話型フォームからのリンクがサイトのすべての投稿ページに表示されます!

これで、会話型フォームからリンクを取得して使用するために必要なすべてです。これらのページに独自のスタイルを追加したいですか?会話型フォームのスタイルシートをエンキューする方法に関するチュートリアルを確認してください。