質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メニュー

メニューは、UIにおける仕組みであり、ユーザに機能の表示と実行する手段を与えます。

Q&A

0回答

921閲覧

WordpressでPHP更新したらサイドメニューが自動更新されなりました…

repost

総合スコア12

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メニュー

メニューは、UIにおける仕組みであり、ユーザに機能の表示と実行する手段を与えます。

0グッド

0クリップ

投稿2020/11/24 12:02

経緯

wordpressでPHP更新の要求があり、バージョン5から7.3に更新しました。
PHP Compatibility Checkerで確認してから更新し、大きなデザイン崩れとかも起きませんでしたが
新規投稿でページ追加しても
サイドメニューに自動追加されなくなりました…

尚、そのサイドメニューのソースを確認したところ
以下に11個のエラーがありますと表示されていました。

9
10
13
15
18
20
22
23

例えば、<?php というものがあると「?」前後の「<」の下に赤い波線が表れています。
このエラーはどのように書き直したらエラーが解消されますでしょうか?
「endforeach;」の書き方なのでしょうか?
どなたかご回答いただければ幸いです。

発生している問題・エラーメッセージ

保存する前に11個のエラーを修正してください。

該当のソースコード

1 <h3 style="font-size:16px; 2 font-weight:normal; 3 padding:15px 0; 4 margin-bottom:5px; 5 border-top:2px solid #C4F4FF; 6 border-bottom:2px solid #C4F4FF;">新着・更新情報</h3> 7 8 <div style="background-color:#EBF9FF;"> 9 <?php 10 $term_id = get_category_by_slug('report_tokyo')->term_id; 11 $posts = get_posts('category='.$term_id.'&numberposts=5'); 12 global $post; 13 ?> 14 15 <?php if($posts): foreach($posts as $post): setup_postdata($post); ?> 16 17 <div style="padding:5px 10px 0px;"> 18 <div style="font-size:10px;"><?php the_time('n/j') ;?> 更新</div> 19 <p style="font-size:12px; 20 border-bottom:1px dashed #ebebeb;"><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p> 21 </div> 22 <?php endforeach; endif; 23 ?> 24 </div> 25 26 <p style="text-align: right; padding:0px 10px;"><a href="http://xxx.jp/category/report_tokyo/">一覧 </a></p>

試したこと

別ページの同メニューの「アーカイブ」部分については新規投稿が反映されてました。
なのでPHPのバージョンアップが原因でなく構文の書き方かなとは思いましたが手詰まりです…

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cerfweb

2020/11/24 12:21

エラーメッセージをできるだけ表示されている通りに提示していただけますか。
repost

2020/11/24 12:29

Wordpress管理画面の 固定ページ > トップページ 2カラムでサイドメニューに「カスタムHTML」があります。そこの編集を押すと「内容」※ソースコード の下に「保存する前に11個のエラーを修正してください。」と表示されているだけです… ソースコードも左のナンバーを付け足しただけでコピペそのままです。
cerfweb

2020/11/24 12:54

12行目の global $post; を消すとどうなりますか。
repost

2020/11/24 13:21

サイドメニュー内の情報がすべて最新の更新日付になり、各内容がすべて「トップページ」と表示されてしまいます。しかし最新の更新日付が表示されるということは新しい発見ですね。
cerfweb

2020/11/24 13:32

global $post; の後に foreachの中で$postが使われているのが気になります。15行目の2つの$postを別の変数、例えば$rowとかに書き換えるとどうなりますか。
repost

2020/11/24 13:48

foreach($posts as $posts) →foreach($row as $row)  ということでしょうか? その場合、「一覧」というテキストのみ残ります。 ちなみに、foreach($post as $row) にすると global $post; を削除した時と同じ内容になり、表示される項目数だけ増えます。
repost

2020/11/24 13:58

$postsを見逃してました… <?php if($posts): foreach($posts as $row): setup_postdata($row); ?> に変更してみましたが 結果は、global $post; を削除した時と同じ内容になりました。
cerfweb

2020/11/24 14:22

global $post; は残してますか。残した時と削除した時とでは同じですか。
repost

2020/11/24 14:36

上記、global $post; は残してました。また、global $post; の削除もしてみましたが結果は一緒でした。
退会済みユーザー

退会済みユーザー

2020/11/25 02:24

$term_id = get_category_by_slug('report_tokyo')->term_id; var_dump($term_id); $posts = get_posts('category='.$term_id.'&numberposts=5'); var_dump($posts); ここに想定する内容がセットされていますでしょうか。
KazuhiroHatano

2020/11/25 03:50

これは「カスタムHTML」ブロックにphpのコードを書いてるってことですか? コンテンツ中のphpのコードを実行できるようにするプラグインを入れてるってことでしょうか? WordPressの新エディタでしょうか?それとも何か別のエディタでしょうか?
repost

2020/11/25 06:21

> kazweda セットされていると思います。PHPをバージョンアップする前は自動更新されていました。PHP7.3にバージョンアップした後に自動更新されなくなったので… 申し訳ないですが、このソースは他人から引き継いだテーマなのであまり把握できていません…
repost

2020/11/25 06:22

> KazuhiroHatano プラグインでなくテーマかと思います。エディターは標準のページビルダーを使用しています。
KazuhiroHatano

2020/11/26 01:42

通常管理画面の記事投稿内でphpのコードを使うことはできません WordPressは昨今記事のHTMLの公文不正などを逐次チェックするようになりました ajaxでスクリプトがhtmlを何度も投げる都合上WAFのチェックにもひっかかりやすいです 正直投稿中のPHPのコードを実行できるようにするということがあまりよろしくないことです これを機にショートコードなどへの置き換えなどを検討されることをお勧めしておきます このままphpのコードを記事中に記述できるようにする方法を模索するのであれば 新エディタなのかElementorのような拡張エディタなのかで解決策が異なるでしょうから テーマの情報などを記述された方が良いかと思います
repost

2020/11/26 03:35

> KazuhiroHatano ありがとうございます。無知で申し訳ありませんが、新エディター(Gutenberg)となるものがあったのですね… 他の箇所にも影響が出そうなので移行はもう少ししてから考えたいと思います。2021年末までには移行しないとですね… PHPのコードは使えないのですね… トップページ(固定ページ)で2カラムにしている片方がサイドメニューで「カスタムHTML」となっており、そこのブロックの「編集」を押すとPHPコードが記載されてます。ただサイドメニューに「アーカイブ」が表示される他ページがありそこは自動更新されています。この「アーカイブ」のようにはできないのでしょうか?単に新着投稿記事をサイドメニューに表示させたいだけなのですが…
KazuhiroHatano

2020/11/26 03:51

多分WordPressが「これからは投稿中にPHPのコードがあるものは不正とみなすよ、今あるのを直したりはしないけど新規投稿では許さないよ」っていうスタンスなんだと思います そのチェックがサーバーサイドなのかクライアントサイドなのか ブロック毎なのかコンテンツ全体に対してなのは不明です ブロック毎に処理されてるとなると対処は難しいだろうと思います ブロック毎の処理には介入する余地がない場合がほとんどだからです コンテンツ全体をサーバーサイドでチェックしてるのであれば WordPressは多分検証処理に介入の余地を用意してる気がします ただ、エディタで波線がつくってことだと ブロック毎に検証されてるんじゃないかと思います
repost

2020/11/26 06:12

そういうことなのですね… 折を見て改修します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問