AIサマリー
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はフォームが送信されるまで実際に割り当てられないので、フォーム送信前にこれらを使用することはできません。