スキルアップを始める!

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

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

※記事中に広告情報を含みます。

\ワードプレスのスキルアップはこちら!/ WordPress入門読本

このシリーズもこのままいくと、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; ?>

表示結果がおかしい?

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

[rml_read_more]

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

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

<?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しごと検索の有効化が「する」になっている案件以外も表示されてしまいますので、調整をしてみます。

まとめ

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

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

ご参考ください😃

URLをコピーしました!