wordpressでの条件分岐について - PHPプロ!Q&A掲示板

4855

  • 募集中!! 0P

wordpressでの条件分岐について

質問日時 / 2017年9月2日 16:14 (最終編集:9月2日 17:43)    回答数 / 1件

Questioner:  unite28  このエントリーをはてなブックマークに追加 

キーワード / wordpress    条件分岐   

お世話になります。

現在有料テーマハミングバードをカスタマイズしています。

トップページの記事一覧表示で以下のような条件分岐が設定されています。
  1. <?php if (is_mobile()) :?>
  2.   <?php if ( $toplayoutsp == "toplayout-big" ) : ?>
  3.   <?php get_template_part( 'parts_archive_big' )?>
  4.   <?php elseif ( $toplayoutsp == 'toplayout-card' ) : ?>
  5.   <?php get_template_part( 'parts_archive_card' )?>
  6.   <?php else : ?>
  7.   <?php get_template_part( 'parts_archive_simple' )?>
  8.   <?php endif;?>
  9. <?php else : ?>
  10.   <?php if ( $toplayout == "toplayout-big" ) : ?>
  11.   <?php get_template_part( 'parts_archive_big' )?>
  12.   <?php elseif ( $toplayout == 'toplayout-card' ) : ?>
  13.   <?php get_template_part( 'parts_archive_card' )?>
  14.   <?php else : ?>
  15.   <?php get_template_part( 'parts_archive_simple' )?>
  16.   <?php endif;?>
  17. <?php endif;?>

これに追加で、
フロントページの場合は
  1. <?php if ( $toplayout == "toplayout-big" ) : ?>
  2. <?php get_template_part( 'parts_archive_big_toppage' )?>
  3. <?php elseif ( $toplayout == 'toplayout-card' ) : ?>
  4. <?php get_template_part( 'parts_archive_card_toppage' )?>
  5. <?php else : ?>
  6. <?php get_template_part( 'parts_archive_simple_toppage' )?>
としたいのですが、どのように記述すれば良いのでしょうか?

<?php if (is_front_page()) :?>
でフロントページの場合はという条件は満たされるのですが、
そこからの記述があっておらずエラーで返ってきます。

ー実現したいことー

モバイルページかつフロントページの場合
ーtoplayout-big-spが選択されて入ればparts_archive_big_toppageを表示
ーtoplayout-card-spが選択されて入ればparts_archive_card_toppageを表示
ーそれ以外はparts_archive_simple_toppageを表示

モバイルページかつフロントページ以外の場合
ーtoplayout-big-spが選択されて入ればparts_archive_bigを表示
ーtoplayout-card-spが選択されて入ればparts_archive_cardを表示
ーそれ以外はparts_archive_simpleを表示

モバイルページではなくフロントページの場合
ーtoplayout-bigが選択されて入ればparts_archive_big_toppageを表示
ーtoplayout-cardが選択されて入ればparts_archive_card_toppageを表示
ーそれ以外はparts_archive_simple_toppageを表示

モバイルページではなくフロントページ以外の場合
ーtoplayout-bigが選択されて入ればparts_archive_bigを表示
ーtoplayout-cardが選択されて入ればparts_archive_cardを表示
ーそれ以外はparts_archive_simpleを表示

ややこしいですが、ご教授お願い致します。


ツリー一覧

┗A01shimixマルチポストでしょうか? https://detail.chiebuk

回答一覧

並び替え:

A01
answerershimix [9月4日 01:20]

マルチポストでしょうか?

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11178907856


これだけの量を記述するなら一般的なphpの記述にすべきです。

下記ソース(タブコードをマルチバイトの空白2つに置換しています)のような処理をしたいということでいいんでしょうか?
  1. <?php
  2. if (is_front_page()) {
  3.   if ( $toplayout == "toplayout-big" ) {
  4.     get_template_part( 'parts_archive_big_toppage' );
  5.   } elseif ( $toplayout == 'toplayout-card' ) {
  6.     get_template_part( 'parts_archive_card_toppage' );
  7.   } else {
  8.     get_template_part( 'parts_archive_simple_toppage' );
  9.     if ( $toplayout == "toplayout-big" ) {
  10.       get_template_part( 'parts_archive_big_toppage' );
  11.     } elseif ( $toplayout == 'toplayout-card' ) {
  12.       get_template_part( 'parts_archive_card_toppage' );
  13.     } else {get_template_part( 'parts_archive_simple_toppage' );
  14.     }
  15.   }
  16. } else {
  17.   if (is_mobile()) {
  18.     if ( $toplayoutsp == "toplayout-big" ) {
  19.       get_template_part( 'parts_archive_big' );
  20.     } elseif ( $toplayoutsp == 'toplayout-card' ) {
  21.       get_template_part( 'parts_archive_card' );
  22.     } else {
  23.       get_template_part( 'parts_archive_simple' );
  24.     }
  25.   } else {
  26.     if ( $toplayout == "toplayout-big" ) {
  27.       get_template_part( 'parts_archive_big' );
  28.     } elseif ( $toplayout == 'toplayout-card' ) {
  29.       get_template_part( 'parts_archive_card' );
  30.     } else {
  31.       get_template_part( 'parts_archive_simple' );
  32.     }
  33.   }
  34. }
  35. ?>

#転記するときはマルチバイトの空白2つをタブコードに置換してください

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)