お問い合わせ
    氏名

    メールアドレス

    件名

    お問い合わせ内容



    会員登録(無料)
    ログイン
    スキルアップは今すぐこちら!▶

    【WordPress】Googleしごと検索(Google for Jobs)に求人を掲載するpart8【Googleしごと検索の有効化を使う】

    WordPress(ワードプレス)
    この記事は約8分で読めます。

    このシリーズもこのままいくと、part20くらいまでいきそうな予感がしますが…進めます。今回はGoogleしごと検索有効化の機能が機能するように調整をしてみます。Googleしごと検索の有効化が「する」になっている案件のみ表示させてみます。

    Googleしごと検索有効化「する」「しない」を使う

    前回までの状態では、Googleしごと検索の有効化を「する」「しない」のステータスに関わらず、すべての案件がすべて出力された状態になっていました。

    これを、Googleしごと検索の有効化が「する」になっている案件のみ表示させてみたいと思います。

    カスタムフィールドの「Googleしごと検索の有効化」を使う

    アドバンスドカスタムフィールドで作成した「Googleしごと検索の有効化」ラベルが使えそうかと思います。名前は「activation」として設定していました。こちらを使ってみます。

    条件分岐(if~)で振り分ける

    この場合はGoogleしごと検索の有効化を「する」「しない」で分ければいけそうな気がしますので、if文で条件分岐してみます。

    前回までの状態は下記のようになっていました。

    <?php while ( have_posts() ) : ?>
    <?php the_post(); ?>
    <!-- 表示される部分 -->
    <?php endwhile; ?>

    こちらを、下記のような条件分岐にしてみます。

    <?php while ( have_posts() ) : ?>
    <?php the_post(); ?>
    <?php
    $now_status = get_field('activation');
    echo $now_status;
    if ($now_status == '募集中') { ?>
    <!-- 表示部分(省略) -->
    <?php } else { ?>
    <p>非公開部分</p>
    <?php } ?>
    <?php endwhile; ?>

    これで、条件分岐できるはず…です。

    結果がすべて「Array」?になってしまいました…。

    チェックボックスのValueが配列?

    前にも書いた記憶があるのですが、チェックボックスのValueをそのまま返そうとすると、結果はArray(配列)が返ってきてしまいます。

    ですので、Arrayからチェックボックスの値を拾って→「Googleしごと検索の有効化」に「する」の値が入っている場合のみ、公開されているページに出力されるように条件分岐してみます。

    get_field_objectに変更してforeachでループさせてみます。※結果が分かるように変数をechoしています。

    $now_status = get_field_object('activation');
      $items = $now_status['value'];
      foreach( $items as $item ):
    	echo $item;
      endforeach;

    これで、「Googleしごと検索の有効化」に「する」の値が入っている場合のみ、公開されているページの一覧画面に表示されるはず…です。

    表示された…かと思いましたが、表示されず。「yes」?

    配列の値が取得されている

    そういえば…カスタムフィールドの選択肢で「yes:する」としていました。つまり、結果として「値」の方を取得していることになります。

    方法を、変えてみます。

    yesの場合に一覧に表示させる

    そうなると、「変数の結果がyesの場合」に表示させればよいということになりそうですので、条件分岐を変更してみます。

    <?php
    $now_status = get_field_object('activation');
      $items = $now_status['value'];
      foreach( $items as $item ):
    endforeach;
    
    if ($item == 'yes') { ?>
      <div class="ListContainer"> 
        <div class="ListLeft">
            <img src="<?php the_field('mainImage'); ?>"/>
        </div>
        <div class="ListRight">
           <div class="ListTitle">
            <a href="<?php the_permalink(); ?>"><?php the_field('jobTitle'); ?></a>
            <a class="detailButton" href="<?php the_permalink(); ?>">詳細はこちら</a>
           </div>
              <div class="ListCompName"><?php the_field('companyName'); ?></div>
              <?php the_field('siteUrl'); ?>
              <?php the_field('postalCode'); ?>
              <?php the_field('addressRegion'); ?>
              <?php the_field('addressLocality'); ?>
              <?php the_field('streetAddress'); ?>
              <?php the_field('setValue'); ?>
              <?php the_field('basicValue'); ?>
              <?php the_field('employmentType'); ?>
              <?php the_field('validThrough'); ?>
         </div>
      </div> 
    <?php } else { ?>
      <p>- 非公開 -</p>
    <?php } ?>
    <?php endwhile; ?>

    表示結果がおかしい?

    公開「する」になっているページのみ、公開されました!

    ・・・ように見えましたが、表示結果がおかしなことになっています。「する」になっていないデータまで表示されてしまっています・・・。

    変数の中がどうなっているのか、出力して見てみます。

    <?php
    $now_status = get_field_object('activation');
      $items = $now_status['value'];
      foreach( $items as $item ):
    endforeach;
    echo 'now_status:'.$now_status;
    echo 'items:'.$item;
    if ($item == 'yes') { ?>
      <div class="ListContainer"> 
        <div class="ListLeft">
            <img src="<?php the_field('mainImage'); ?>"/>
        </div>
        <div class="ListRight">
           <div class="ListTitle">
            <a href="<?php the_permalink(); ?>"><?php the_field('jobTitle'); ?></a>
            <a class="detailButton" href="<?php the_permalink(); ?>">詳細はこちら</a>
           </div>
              <div class="ListCompName"><?php the_field('companyName'); ?></div>
              <?php the_field('siteUrl'); ?>
              <?php the_field('postalCode'); ?>
              <?php the_field('addressRegion'); ?>
              <?php the_field('addressLocality'); ?>
              <?php the_field('streetAddress'); ?>
              <?php the_field('setValue'); ?>
              <?php the_field('basicValue'); ?>
              <?php the_field('employmentType'); ?>
              <?php the_field('validThrough'); ?>
         </div>
      </div> 
    <?php } else { ?>
      <p>- 非公開 -</p>
    <?php } ?>
    <?php endwhile; ?>

    1回目のループには中身が空白で、2回目以降のループには、全て「yes」が入ってしまっています。

    これだとGoogleしごと検索の有効化が「する」になっている案件以外も表示されてしまいますので、調整をしてみます。

    まとめ

    長くなりましたので、こちらのループ調整は次回挑戦してみたいと思います。

    まだまだ続きそうな予感ですが、次は、開いた先の詳細ページの方も作成していきたいと思います。

    ご参考ください😃

    0 件のコメント

    コメント
    タイトルとURLをコピーしました