Simplicityの特徴 › フォーラム › テーマファイルのカスタマイズに関する質問など › category.php のエラーに関して
-
投稿者投稿
-
-
2016年2月14日 12:52 PM #36498
かぁたん
ゲスト初めまして。長文になります。
category.php のエラーについての質問です。
ネットで様々調べたり、サーバー業者にも問い合わせましたが
解決に至りません。宜しくお願いいたします。Simplicity 1.8 安定版 で寝ログさんの
WordPressのカテゴリー設定にある「説明文」をカテゴリページに表示し、メタタグにも設定するカスタマイズ方法 http://nelog.jp/category-description-customの「カテゴリページで表示するためのカスタマイズ」をしたく
category.phpを親テーマからコピーし子テーマのcategory.phpを追加したところ
カテゴリーページ全てがサーバーエラー500になってしまいました。慌てて、何か間違いがあったと思い、子テーマ側を削除し親テーマに追加しましたが、
サーバーエラー500のままでした。
その後、親テーマ側のcategory.phpを上書きし元の状態に戻しましたが状況が変わりません。Fatal error: Call to undefined function get_header() in /home/users/0/○○.jp-○○○/web/category.php on line 2
サーバー業者がPHPの設定を変更して現在はエラー状況は見える状態のままにしてもらっています。
ファイルのline 2の記述の間違いがあると表示されていますが、親テーマ側のファイルを上書きしているのでファイル上では記述の間違いはありません。ネットで調べたところキャッシュ系のプラグインの関係もあるらしいので削除し、「Simplicity動作不良時のガイドライン」を拝見し、Simplicity 1.8 安定版を入れなおしたり、入っているプラグインも全て停止、他のテーマにしたりしましたが解決には至っておりません。現在はSimplicity2.0.7にしています。
ものは試しで、サーバーに新しくWordPressをインストールしSimplicity 1.8 安定版を入れてカテゴリーで表示しましたが問題なく表示されています。
出来れば引っ越し作業は避けたいと思っていますが、この状況では引っ越しは避けられないでしょうか?お忙しい中大変恐縮ですが、ご返答頂けたら幸いです。
-
2016年2月14日 9:59 PM #36509
Hidekichi
ゲスト何度か読みましたが状況があまりつかめませんので、以下を再度書いて欲しいのですが、まず、
何をしようとして
どこを
どのようにというのが大切です。
目的がわかれば別のアプローチもあるかも知れませんし、やりたいことがわかります。
質問の内容では、寝ログの内容をcategory.phpにコピペ(みたいな感じで)やってみたと言うのもわかります。
問題は次の「どのように」の部分です。寝ログのサンプルを子テーマに移したcategory.phpのどこに入れたのか、それが丸ごとコピペなのかなどがわからないと、実際に試すことができません。
今回の内容は特にwordpressのバージョンの問題とかでは無さそうに見えますが、該当の寝ログの記事は1年ぐらい前のものですよね。その1年の間にwordpressのバージョンも何度か変わったと思います。例えば、利用する関数の仕様が変わっていたり、非推奨になっていたり、wordpressのバージョンによっては動作しないなどもあるかもしれません。
またwordpressの関数ではなく、phpの関数に関しても5.3は利用不可で5.5以降ならイケるとかもある場合もあります。更に、phpのカスタマイズは外から見えないので、動作しないプログラムソースをどこかで公開してもらうしか添削ができないんですけれども(ここらがわいひらさんが言う独自に行ったカスタマイズはサポート対象外ですって所です)、例えばコピペしたとすると、次のことが考えられます。
・カッコの閉じ忘れ
・挿入場所の不備による、ネスト構造のエラー
・クォートやカッコが大文字になっている
・「;」忘れエラーコードの500はいわゆるInternal Server Errorですので、たいていはシンタックスエラーです。コピペしたというのが前提なら、2つ目のネスト構造のエラーがとても怪しいんですけれども、例えば
<?php endif; ?>
の後にコピペしたなら、よいですが、<?php if (なんちゃら): ?> //その他諸々のスクリプトがあって <?php ここに追加してしまった ?> <? endif; ?> //その他諸々のスクリプトがあって <?endif; ?> ←どこかでこいつがあったりするこういう場合とか。このif(): 〜 endif;って形は、中にhtmlのタグをそのまま書けるので便利なんですけども、逆に構造がわかりにくくなったりする場合がありますので注意が必要な所です。
後の部分は、例えばオンライン php 構文チェックなどで検索すれば構文チェックのサイトがあると思うので、そこらで確認ですかね。
;一つ無いだけでも同様の症状になったりすることがあります。とまぁ、こういう感じのこともあるので、
「親テーマcategory.phpを子テーマのフォルダにコピペして、子テーマのcategory.phpの何行目の何々のあと(前)に、あるいは何とかというコメントの後に、寝ログの最初のサンプルスクリプトを貼り付けましたがエラーが出ます。(エラーの内容等)」(部分的なエラーならページのスクリーンショットもあると尚良です)。
のような、内容を書いてもらって、それが再現されるかをまず確かめる必要があります。再現した場合はサンプルの方の間違いなので、何かしら修正のソースを提示することができるでしょうし、再現できない場合は、間違いなくコピペ(もしくは挿入箇所)のミスなので、ご自身で確認してもらうしかありません。
カスタマイズの状況として、例えば親テーマに直接やらずとも子テーマでまかなえるものは小テーマでやる方が良いです。もし子テーマで問題が出れば親テーマを有効にするだけで、子テーマにふくまれるエラーは関係なくなりますのでブログの運営は可能です。
その間に子テーマを修正すればよいだけのことですから、引っ越しまで考える必要はないと思います。サーバーのサポートの対応が気にくわないとかなら、すぐに引っ越したほうが良いかも知れませんが(笑)何なら、Simplicity以外のテーマに一旦変えて運営しつつ、Simplicityをテスト環境などでカスタマイズして、問題なく動作したらSimplicityに変えればよいだけのことです。
-
2016年2月15日 5:59 PM #36531
わいひらキーマスター以下の記事のカスタマイズは、Simplicityで既に適用されているので、カスタマイズの必要はありません。
http://nelog.jp/category-description-customエラーについてですが、例えばテーマを仮にSimplicity以外のものに変更した場合は、エラーは出ませんか?
-
2016年2月16日 11:22 PM #36591
かぁたん
ゲストHidekichi 様
言葉足らずの中ご返答頂き感謝申し上げます。
勉強不足で猛省しています。間違ってしまったのが2週間前の事で
記憶が曖昧で申し訳ありませんがcategory.phpの<?php //カテゴリーリスト用 ?>
<?php get_header(); ?>【この部分】
<?php get_template_part(‘list’) ?>
<?php get_footer(); ?>
に
<!– カテゴリの説明文 –>
<?php if (is_category() && //カテゴリページの時
!is_paged() && //カテゴリページのトップの時
category_description()) : //カテゴリの説明文が空でない時 ?>
<div class=”category-description”><?php echo category_description(); ?></div>
<?php endif; ?>を丸ごとコピーして入れてました。
本来は<?php endif; ?>の後に入れるべきだったと・・・Hidekichi 様がお書き下さった
・挿入場所の不備による、ネスト構造のエラー
に該当すると思います。サーバーはロリポップを使用していまして、カテゴリーページを見ると
Google Chromeではサーバーエラー500と表示されていましたので
どこの部分がエラーになっているのか分からないため、ロリポップ側でPHPの設定を
変えて頂いて、エラー部分が分かった次第です。Fatal error: Call to undefined function get_header() in /home/users/0/○○.jp-○○○/web/category.php on line 2
しかし、親テーマのcategory.phpは既に上書きされていますがエラー状況は変わらないという事です。
オンラインのphp 構文チェックも検索して探してみたのですが
どこをどういう風にして調べたて訂正して良いのか良いのか勉強不足のため見当も付きません。返答になっていますでしょうか?宜しくお願いいたします。
わいひら様
ご返答ありがとうございます。
既に適応されているのですね・・・。余計な事をしました。
何個か他のテーマにしてみましたがSimplicity以外でもカテゴリーページを開くとエラーは出ています。宜しくお願いいたします。
-
2016年2月17日 12:10 AM #36592
Hidekichi
ゲスト挿入された場所と内容は間違っているようには思えないので、get_header()が親テーマと子テーマで2回呼び出されることのエラーとかかなぁと思ったりも。
ここらの仕組みは、イマイチパッとしてないんですけれども、実際にテスト環境で試してみた所、かぁたんさんが入れられた箇所に寝ログのソースを入れたら、パンくずリストの上に普通に表示されました(親テーマの改造)。
ここから、子テーマにcategory.phpをコピーしたのが問題だった可能性が高いと思われるんですけど、わいひらさんが言うように、既に機能として搭載されているので、
パンくずリスト
「カテゴリー名」の一覧
「ここ」
各リストこんな感じで表示されます。子テーマ側にコピーされたと思われるcategory.phpをひとまず削除してみてどうなるかが気になる所ですが、元に戻す方向で子テーマ側を整理していくのが良いかと思います。
親テーマは再度zipでダウンロードして、再インストールすればよいだけですから。 -
2016年2月18日 2:41 PM #36628
わいひらキーマスターFatal error: Call to undefined function get_header()
Wordpress側で定義されている関数のget_header()が定義されていないというのがちょっと謎ですね。
Simplicityテーマをカスタマイズしたのに、他のテーマでも同様にエラーが出るのもおかしいです。
Wordpress側のファイルに何かあったりするんだろうか。
サーバーはどこでしょうか?というか、1度、サイトのURLを掲載していただいて、見せてもらうことは可能でしょうか? -
2016年2月19日 4:12 PM #36679
かぁたん
ゲストHidekichi様
お世話になっております。
少しご返答頂いている内容が分からないのですが…
言葉足らずな部分もあったかと思いますが、宜しくお願いいたします。Simplicity 1.8 安定版 でcategory.php のエラーが出まして、
「Simplicity動作不良時のガイドライン」で見直し
Simplicity以外の他のテーマに変更しましたが状況が変わりません。少しでもエラーの部分が変わればと思い、Simplicity 1.8 安定版からSimplicity2.0.7と
子テーマはsimplicity2-child20160110変更ましたが、子テーマ側のファイルは一切変更
や追加の記述など行っていない状態で、子テーマ側にはcategory.phpファイルはありません。この投稿前に行こなったことは以上です。
ご提案頂いている「category.phpをひとまず削除」は親テーマ側で行った方がよろしいでしょうか?
宜しくお願いいたします。わいひら 様
お世話になっております。
サーバーはロリポップで、サイトは http://daybyday.main.jp/
になります。宜しくお願いいたします。 -
2016年2月19日 8:21 PM #36689
わいひらキーマスターよく見てみると、テーマでエラーが出ているわけではないようです。
/home/users/0/xxxx.jp-xxxx/web/category.php on line 2
上記のwebディレクトリには、何が入っているのでしょうか?FTPなどで見てみてください。
通常、テーマでエラーが出る場合は、Simplicityディレクトリ、もしくは子テーマなどのディレクトリでエラーが出るはずです。
なので、テーマでエラーが出ているわけではない以上、僕もちょっと原因はわからないです。(僕はそのエラーが出ているファイルを見ることができないので。
FTPでファイルを確認して修正するか、サーバーに問い合わせていただくしかないかもしれません。あと今思いついた方法なので、うまくいくかわからないのですが、Simplicity2を新たにダウンロードして中にあるcategory.phpファイルを取り出して、Simplicity2子テーマディレクトリにアップロードしてみてください。
これでも、うまくいかない場合は、僕にはちょっと原因はわかりかねます。
-
2016年2月19日 9:13 PM #36691
Hidekichi
ゲスト> category.phpを親テーマからコピーし子テーマのcategory.phpを追加したところ
こうあったので、子テーマにcategory.phpをコピペして寝ログのソースを追加したと思ったんですが違いましたか?
もし子テーマ側にcategory.phpがないなら削除する必要はありません。親テーマの方は削除してはいけません。
追加した寝ログのソースを取り除いて元に戻せばよいだけです。わいひらさんの指摘の箇所は、アレですかね、サブディレクトリを自身で作ってそこにwordpressをインストールしているとかそういう感じのでしょうか?
-
2016年2月20日 11:28 AM #36708
かぁたん
ゲストわいひら 様
ご返答ありがとうございました。
webのディレクトリを見るとcategory.phpの他にもbefore-main.phpが入っていました。ロリポップのFTPツールで親テーマからcategory.phpのみをコピーし子テーマに貼り付けた記憶しか
なかったので、webのディレクトリに入っているとは思ってもいませんでした。
子テーマ内のファイルを全てコピーしてwebのディレクトリに貼り付けした形になってしまったようです。先急ぎcategory.phpのみを削除したところ、エラー表示が出なくなり正しい状態でカテゴリー表示されていました。
Hidekichi 様
ご返答ありがとうございました。
「もし子テーマ側にcategory.phpがないなら削除する必要はありません。親テーマの方は削除してはいけません。
追加した寝ログのソースを取り除いて元に戻せばよいだけです。追加した寝ログのソースを取り除いて元に戻せばよいだけです。」私もそのように書いたつもりでした。言葉が足らず混同させてしまい申し訳ございません。
子テーマ側のファイルを削除した上でのこちらの投稿でしたので、親テーマのcategory.phpのファイルを削除には???となってしまいました。「サブディレクトリを自身で作ってそこにwordpressをインストールしているとかそういう感じのでしょうか?」
わいひら様のお書き下さった事とHidekichi様がお書き下さったことで何とか理解ができました。
やっと解決でき大変嬉しいです。またお世話になってしまうかも知れませんが宜しくお願いいたします。
-
2016年2月20日 5:13 PM #36713
わいひらキーマスターなにはともあれ、解決したようでよかったです。
-
-
投稿者投稿
- トピック「category.php のエラーに関して」には新しい返信をつけることはできません。