こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。
先日にお問い合わせフォームにカテゴリー名の一覧を読み込ませたいとご相談がありました。ご自身で途中までカスタマイズされていたので少しの処理を追加して無事解決。下記でご紹介させていただきます。
使用するプラグインは「Contact Form 7」です。過去に書いた記事があるのでリンクを貼っておきますね。
カスタム手順は下記をご参照ください。
お問い合わせフォームにカテゴリーやタグの一覧を読み込ませる方法
お伺いすると運営サイトのカテゴリー名を一覧で取得したいとのご希望でした。下記の解説記事では投稿のカテゴリー名をまとめて読み込んでいますがカスタム投稿タイプのカテゴリーやタグも指定可能です。
下記が管理画面で確認できる「投稿のカテゴリー名」ですね。
実際に取得した状態が下記となります。
カスタマイズに必要な情報は下記3つ。
・お問い合わせフォームのID
・ドロップダウンメニューのタグ
・カテゴリーのタクソノミー
お客様から届いたソースコードに手を加えて「カテゴリー名の一覧を取得する状態」へ書き換えました。
add_filter( 'do_shortcode_tag', function( $output, $tag, $attr ) {
if ( 'contact-form-7' === $tag || 'contact-form' === $tag ) {
// お問い合わせフォームのID
$id = 1;
// ドロップダウンメニューのタグ
$name = 'menu-name';
// カテゴリーのタクソノミー
$tax = 'category';
if ( $id == $attr['id'] ) {
$terms = get_terms( $tax, array( 'hide_empty' => false) );
if ( !empty( $terms ) && !is_wp_error( $terms ) ) {
$options = '<option value="">選択してください</option>';
foreach( $terms as $term ) {
$options .= '<option value="' . esc_attr( $term->name ) . '">' . esc_html( $term->name ) . '</option>';
}
$output = preg_replace( '/(<select .*?name="' . $name . '".*?>)(.*?)(<\/select>)/i', '${1}' . $options . '${3}', $output );
}
}
}
return $output;
}, 10, 3 );
作成したフォームのIDは下記ですね。
ドロップダウンメニューのタグはフォーム内で確認しましょう。
そしてタクソノミーはURLバーからコピーすればOK。
カスタマイズは以上となります。
まとめ
本日は「フォームにカテゴリー名の一覧を読み込ませる方法」を解説いたしました。
上記でも解説した通りカスタム投稿タイプのカテゴリーやタグも指定可能です。以前に「カスタム投稿タイプでタグを追加する方法」も記事にしているのでカスタム時はぜひ併せてご参考くださいませ。
本記事がお問い合わせフォームのカスタマイズでヒントになれば幸いです。
最新式の無料プラグインを事前公開
WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
→ 改良されたプラグインを確認する