下記のコードでアーカイブを実装したいのですが、エラーが表示されており、調べても構文の間違えが分かりませんでした。構文でおかしな部分はありますでしょうか?
//エラー箇所
if ($the_year === $this_year): // 今年だったら
$out .= '<li class="year acv_open current">' . $the_year;
$out .= '<ul class="month-archive-list">';
else: // それ以外の年の場合
$out .= '<li class="year">' . $the_year;
$out .= '<ul class="month-archive-list">';
endif;
//エラー文
syntax error, unexpected '$out' (T_VARIABLE)
<div class="widget">
<h4 class="monthly-archive-title">月別アーカイブ</h4>
<?php
// 月別アーカイブリストを取得する
$monthly_archives = wp_get_archives(
$args = array(
'type' => 'monthly',
'show_post_count' => true,
'before' => '',
'after' => ',',
'echo' => 0,
));
$monthly_archives = explode(',', $monthly_archives); //配列化
array_pop($monthly_archives); //末尾の空白要素を削除
// 年別アーカイブリストを取得する
$yearly_archives = wp_get_archives(
$args = array(
'type' => 'yearly',
'format' => 'custom',
'before' => '',
'after' => ',',
'echo' => 0,
));
$yearly_archives = explode(',', $yearly_archives); //配列化
array_pop($yearly_archives); //末尾の空白要素を削除
$this_year = (string)idate('Y'); //現在の年を、4桁の文字列で取得
// HTMLとして出力するコードの記述部分
// ここから
$out = '<ul class="archive-list">';
foreach ($yearly_archives as $year) {
$the_year = substr($year,-8,4); // 「年」を表す部分のみ抽出する
if ($the_year === $this_year): // 今年だったら
$out .= '<li class="year acv_open current">' . $the_year;
$out .= '<ul class="month-archive-list">';
else: // それ以外の年の場合
$out .= '<li class="year">' . $the_year;
$out .= '<ul class="month-archive-list">';
endif;
foreach ($monthly_archives as $month) {
//月毎アーカイブの文字列中に、ターゲットとなる年が含まれているか
$pos = strpos($month, $the_year);
// 含まれている限り、li要素を出力
if ($pos !== false): // 該当する文字列が含まれているときは、その位置が返ってくるので、!==falseという判定文を使用
$out .= $month;
endif;
}
$out .= '</ul>'; // 閉じる <ul class="month-archive-list">
}
$out .= '</li>'; // 閉じる <li class="year">
$out .= '</ul>'; // 閉じる <ul class="archive-list">
// ここまで
// HTMLの出力
echo $out;
?>
</div>
No.4ベストアンサー
- 回答日時:
コロンを使った構文はこれで正しいと思います。
> syntax error, unexpected '$out' (T_VARIABLE)
$outという変数が、本来あるべきではない箇所に書いてある、というエラーです。
こういう場合
・$outがあるのが間違い
・$outの周辺に間違いが原因で、 $out が間違いかのようにエラーになっている
の2つが考えられます。
質問のスクリプトをコピペしたところ、
if ($the_year === $this_year): // 今年だったら
の
: //
ここが「全角スペース」になっています。
元のファイルもそうなってませんか?
コードを書くときは、(色が変わる、□で書かれるなどの)空白が見えるようなエディタを使うことをお勧めします。
No.5
- 回答日時:
マニュアルに
「同じブロック内で別の構文を混ぜて使うことはできません。」
と書かれているから、それに該当するのでは?
https://www.php.net/manual/ja/control-structures …
No.3
- 回答日時:
if then elseの構文は以下
if (xxxxxxxx) { // もし〇〇なら
真の場合の処理を記述
} else { // もし〇〇でなければ
偽の場合の処理を記述
}
No.1
- 回答日時:
if ($the_year === $this_year){ // 今年だったら
$out .= '<li class="year acv_open current">' . $the_year;
$out .= '<ul class="month-archive-list">';
}else{ // それ以外の年の場合
$out .= '<li class="year">' . $the_year;
$out .= '<ul class="month-archive-list">';
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- その他(IT・Webサービス) html cssについて 3 2023/05/13 12:48
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
重複確認
-
Ruby 2次元のハッシュ
-
foreachとかの勝手な省略?
-
マッチング処理(1:N)
-
思うような連想配列ができない・・
-
if文などで使用される条件式で...
-
リストボックス複数選択抽出方法
-
foreachで上限回数指定方法また...
-
foreachで配列を、左から縦3列...
-
【PHP】 重複した値を取り除く...
-
PHPで連想配列のプルダウンメニ...
-
ランキング非対象者のプログラム
-
phpでforeachの中にforeachがあ...
-
file_existsでファイル名の部分...
-
php で1から100までの素数の表...
-
ファイルの書き込みについて教...
-
PHPのmin関数、「1」以上の数値...
-
$_SESSIONに二次元配列を使える...
-
curlをPHPで書く方法
-
正規表現でパターンマッチした...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複確認
-
foreachで上限回数指定方法また...
-
マッチング処理(1:N)
-
Excel VBAでフィルター後の対象...
-
VB.NET で 二次元のハッシュは...
-
多次元配列を、1次元の配列にす...
-
SELECT 使用時の bindValue の...
-
Smartyでインクリメント
-
PHPでこのコード自体に意味は無...
-
配列を比較して同じものがあっ...
-
PHP、{}記号の意味
-
phpでforeachの中にforeachがあ...
-
sqlのデーターを『あ行』『か行...
-
多次元配列の中で条件に合う要...
-
構造体の中でユーザー定義型の...
-
キーが倍数の時の値の存在チェ...
-
foreachで配列を、左から縦3列...
-
ラジオボタンをランダムに表示...
-
三重県南部の温泉
-
ジャグ配列
おすすめ情報