[WordPress] カスタム投稿のタイトルを参照してラジオボタンを設置したい
エントリーフォームにカスタム投稿で作成した募集要項の内容を入力項目として表示するなど、カスタム投稿とメールフォームの項目を連動させたいケースがあります。
本記事では、そんな場合にさっと使えるサンプルコードを紹介します。
サンプルコード
<?php
    $args = array(
        'post_type' => 'application',
        'posts_per_page' => -1
    );
    $the_query = new WP_Query($args);
    if($the_query->have_posts()) {
?>
        <dt>希望職種</dt>
        <dd>
            <?php
                while($the_query->have_posts()) {
                    $the_query->the_post();
                    $title = get_the_title();
            ?>
                    <label><input type="radio" name="希望職種" value="<?php echo $title; ?>" required="required"> <?php echo $title; ?></label>
            <?php
                }
            ?>
        </dd>
<?php
    }
    wp_reset_postdata();
?>
カスタム投稿「application」の記事を取得し、そのタイトルでラジオボタンを生成するループを回しています。
「posts_per_page」を「-1」とすることで、投稿内の全記事を取得するようにしています。
タクソノミーで絞り込んだ投稿でラジオボタンを生成する
タクソノミーで絞り込みをした記事でラジオボタンを生成するパターンです。
<?php
    $args = array(
        'post_type' => 'application',
        'posts_per_page' => -1,
        'tax_query' => array(
            array(
                'taxonomy' => 'tax_type',
                'field' => 'slug',
                'terms' => 'tm_career'
            )
        )
    );
    $the_query = new WP_Query($args);
    if($the_query->have_posts()) {
?>
        <dt>希望職種</dt>
        <dd>
            <?php
                while($the_query->have_posts()) {
                    $the_query->the_post();
                    $title = get_the_title();
            ?>
                    <label><input type="radio" name="希望職種" value="<?php echo $title; ?>" required="required"> <?php echo $title; ?></label>
            <?php
                }
            ?>
        </dd>
<?php
    }
    wp_reset_postdata();
?>
ご質問など受け付けています
記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。
ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。