AI要約
投稿送信アドオンを利用中で、投稿URLを確認メッセージに含めたいとお考えですか?PHPスニペットとWPFormsのスマートタグを使えば簡単に実現できます。ここでは、その手順をステップバイステップでご案内します。
スマートタグは、確認メッセージ内で使用できるクイック参照リンクです。WPFormsには、便利なようにあらかじめ用意された多数のタグがあります。利用可能なオプションの詳細については、こちらのドキュメントを参照してください。
しかし、WPFormsで使用するために独自のスマートタグを作成できることをご存知でしたか?このチュートリアルでは、3つの新しいカスタムスマートタグの作成方法をデモンストレーションします。
- 投稿タイトル
- 投稿タイプID番号
- 投稿URL
これらのタグは、確認メッセージ内で非常に役立ちます。これにより、フォームを送信したばかりのユーザーに投稿への直接リンクを提供できます。
フォームの作成
投稿送信アドオンを使用してフォームを作成する方法についてサポートが必要な場合は、こちらのチュートリアルを確認してください。
このチュートリアルの目的のため、ブログ投稿送信フォームテンプレートに付属するデフォルトフィールドを使用してフォームを作成しました。

投稿送信の有効化
次に、投稿送信を有効にする必要があります。これを行うには、フォームビルダー内で設定タブをクリックし、投稿送信を選択して、スイッチを投稿送信を有効にするに切り替えます。

投稿を送信するユーザーがWordPressサイトにログインしていない場合、かつ投稿のステータス(送信後)が下書きまたはレビュー待ちに設定されている場合、確認メッセージから投稿URLを表示しようとすると404ページが表示されることに注意してください。これは、WordPressにログインしている場合のみ下書き投稿を表示できるためです。
確認メッセージへの投稿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番号などの情報を保持するスマートタグの名前と定義を設定しています。
2番目の関数はこれらのスマートタグを処理し、タイトル、パーマリンク(URL)、投稿タイプのID番号を割り当てます。これにより、これらのスマートタグを確認メッセージで使用できるようになります。
これで、{Submitted Post Type URL}、{Submitted Post Type Title}、または{Submitted Post Type 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: メール通知で使用できますか?
A: 現在、メール通知内での使用はできません。
Q: これらのスマートタグをフォーム内で使用できますか?
A: いいえ、投稿IDとURLはフォームが送信されるまで実際に割り当てられないため、フォーム送信前にこれらを使用することはできません。