会話型フォームからのリンクの取得と使用方法

はじめに

Conversational Forms からリンクを取得して、あなたのテーマの PHP テンプレート内でこのリンクを使いたいですか?小さな PHP スニペットを使えば、簡単にパーマリンクを取得し、PHP の echo 文を使ってテーマの PHP テンプレート内にリンクを表示することができます。このチュートリアルでは、このパーマリンクを取得し、PHPテンプレート内でリンクをecho出力する方法を各ステップごとに説明します。

フォームの作成

まず、会話フォームを作成する必要があります。これに関して何か助けが必要な場合は、こちらのドキュメントをご覧ください

会話フォームを作成する

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

スニペットをサイトに追加する際にヘルプが必要な場合は、こちらのチュートリアルをご覧ください

/**
 * 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を受け取り、そのフォームの会話フォームへのリンクを取得するスタンドアロン関数です。

を使用する場合 echo get_the_conversational_form_link( $form_id ); 関数を PHP テンプレート内に書くと、その関数は特定のフォーム ID のパーマリンクを取得し、テンプレート内でそのリンクを echo します。

関数を使う

それでは、この新しく作った関数をテーマ・テンプレートの中で使ってみましょう。

子テーマを作成せずにテーマの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テンプレート内に新しい関数とテキストを配置したので、ブログのすべてのページでこの関数が動作するのを見ることができる。

会話型フォームからのリンクは、当サイトのすべての投稿ページに表示されるようになりました!

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