Post Submissionアドオンを利用していて、確認メッセージに投稿 URL を組み込むことに興味がありますか?PHPスニペットとWPFormsスマートタグで簡単に実現できます。
スマートタグは確認メッセージ内で使用可能なクイックリファレンスリンクとして機能します。WPFormsには便利なタグがたくさん用意されています。利用可能なオプションの詳細については、こちらのドキュメントを参照してください。
しかし、WPFormsで使用するスマートタグを自分で作成できることをご存知ですか?このチュートリアルでは、3つの新しいカスタムスマートタグを作成する方法を紹介します:
- 投稿タイトル
- 投稿タイプID番号
- 投稿記事のURL
これらのタグは、フォームを送信したばかりのユーザーに投稿への直接リンクを提供することを可能にし、確認メッセージの中で非常に重要な役割を果たします。
フォームの作成
投稿アドオンを使ってフォームを作成する際にヘルプが必要な場合は、こちらのチュートリアルをご覧ください。
このチュートリアルの目的のために、ブログ記事投稿フォームテンプレートに付属しているデフォルトフィールドでフォームを作成済みです。
投稿の有効化
次に、投稿投稿を有効にする必要があります。これを行うには、フォームビルダーの設定タブをクリックし、投稿投稿を選択し、投稿投稿を有効にします。
投稿するユーザーがWordPressにログインしておらず、投稿のステータス(投稿後)を下書きまたはレビュー保留に設定している場合、確認メッセージから投稿のURLを表示しようとすると404ページが表示されます。
確認メッセージに投稿URLを追加する
フォームの設定が完了したら、「確認」タブをクリックします。
投稿URLを表示するだけでなく、実際にクリックできるリンクにしたいので、エディターウィンドウのテキストタブをクリックし、メッセージを追加してください。
以下のように入力して、メッセージと投稿URLのテキストとHTMLを配置します:
<p>Thanks for the submission! If you'd like to see a preview of your post titled <strong>{submitted_cpt_title}</strong> for the post type ID of <strong>{submitted_cpt_id}</strong>, just <a href="{submitted_cpt_url}">click here</a>.</p> <p>It will be reviewed shortly.</p>
フォームを送信する訪問者に、投稿タイプID番号、投稿タイトル、投稿URLを知らせるメッセージを追加します。
メッセージを追加したら、フォームの「保存」をクリックし、次のステップに進みます!
投稿URLスマートタグの作成
さて、いよいよあなたのサイトにコード・スニペットを追加して、すべてをまとめましょう。コード・スニペットをサイトに追加する方法については、こちらのチュートリアルをご覧ください。
/** * Add Smart Tags to the Post Submission confirmation messages * * @link https://wpforms.com/developers/how-to-include-post-submissions-post-url-in-the-confirmation-message * */ // This function sets up the names of the Smart Tags we will be using. function wpf_dev_register_smarttag( $tags ) { // Key is the tag, value is the tag name. $tags[ 'submitted_cpt_id' ] = 'Submitted Post Type ID'; $tags[ 'submitted_cpt_url' ] = 'Submitted Post Type URL'; $tags[ 'submitted_cpt_title' ] = 'Submitted Post Type Title'; return $tags; } add_filter( 'wpforms_smart_tags', 'wpf_dev_register_smarttag', 10, 1 ); //This function will process the Smart Tags so that we can //use them inside the confirmation message and email notifications function wpf_dev_process_smarttag( $content, $tag ) { if ( empty( $_POST[ 'wpforms' ][ 'entry_id' ] ) ) { return $content; } /** @var WPForms_Entry_Handler $entry */ static $entry; if ( empty( $entry ) ) { $entry = wpforms()->entry->get( (int) $_POST[ 'wpforms' ][ 'entry_id' ], [ 'cap' => false ] ); } if ( empty( $entry->post_id ) ) { return $content; } switch ( $tag ) { case 'submitted_cpt_id': $content = str_replace( '{submitted_cpt_id}', (int) $entry->post_id, $content ); break; case 'submitted_cpt_url': $content = str_replace( '{submitted_cpt_url}', esc_url( get_permalink( (int) $entry->post_id ) ), $content ); break; case 'submitted_cpt_title': $title = get_post_field( 'post_title', $entry->post_id ); $content = str_replace( '{submitted_cpt_title}', esc_html( $title ), $content ); break; } return $content; } add_filter( 'wpforms_smart_tag_process', 'wpf_dev_process_smarttag', 10, 2 );
最初の関数の中では、スマートタグの名前と、タイトル、URL、投稿のID番号などの保持する情報の定義を設定しています。
つ目の関数は、これらのスマートタグを処理し、タイトル、パーマリンク(URL)、投稿タイプID番号を割り当てます。
これで、{投稿タイプURL }、{投稿タイプタイトル}、{投稿タイプID}を使うときはいつでもまたは{投稿タイプID}を使用します。スマートタグを使用すると、フォーム送信に成功した後、これらの値が自動的に割り当てられ、訪問者は確認メッセージに追加したここをクリックリンクを簡単にクリックし、投稿IDや 投稿タイトルなどの他の情報を見るだけでなく、投稿の下書き(または完全な公開投稿)に移動することができます。
必要なのはこれだけです!もっとカスタムスマートタグを作りたいですか?カスタムスマートタグの作成方法のチュートリアルをご覧ください。
リファレンス・フィルター
よくあるご質問
Q: 投稿URLを新しいウィンドウやタブで開くようにできますか?
A:もちろんです!リンクを新しいタブで開きたい場合は、次のようにHTMLリンクを作成してください:
<p>Thanks for the submission! If you'd like to see a preview of your post titled <strong>{submitted_cpt_title}</strong> for the post type ID of <strong>{submitted_cpt_id}</strong>, just <a href="{submitted_cpt_url}" target="_blank">click here</a>.</p> <p>It will be reviewed shortly.</p>
Q: これはEメール通知に使えますか?
A:現在のところ、Eメール通知内で使用することはできません。
Q: これらのスマートタグをフォーム内で使用できますか?
A:いいえ、投稿IDとURLはフォームが送信されるまで実際に割り当てられないので、フォーム送信前にこれらを使用することはできません。