PR

STINGER +2のst-tagcss.phpがないエラーを解決する方法

WordPress

WordPressの無料テーマ、STINGER+2(STINGER PLUS2)を別のサイトで使用しているのですが、Googleのデベロッパーツールを使っていたところ何やらエラーが出ていました。

 

エラー内容は以下の通り、ファイルが無いというのです。

Failed to load resource: the server responded with a status of 404 (Not Found)

st-tagcss.phpというファイルが無い、というのでフォルダを確認すると無い。

使った覚えはないけれど、何かの拍子で消しちゃったかも?と親テーマを再度ダウンロードしてみると、無い。

検索してみるとどうも最初から無いようなので、対策方法を探して対策してみました。

また、php素人なので少し手間取った事も覚書として書いておきます。

スポンサーリンク

STINGER PLUS2のst-tagcss.phpが無い事の影響

このファイルが無い事で、サイトの表示に若干の遅れが出ていました。

デベロッパーツールで見ると、st-tagcss.phpを探すのに時間がかかるのか9秒近くとられています。

そしてエラーを放置しておくのも嫌な感じですし、何とか出来ないものかと検索してみました。

STINGER PLUS2のst-tagcss.php問題を解決する方法

検索してみると、二通りの方法がありました。

function.phpにst-tagcss.phpを読まないようコードを追記する

まずは、子テーマのfunction.phpに、無いはずのst-tagcss.phpを読まないようコードを記述をする方法が見つかりました。

たまろぐ
暮らしと育児のブログ

phpが苦手で悪戦苦闘してるので、コードがまるっと書いてありとてもありがたいです。

st-tagcss.phpがないなら作る

内容は空で良いので、st-tagcss.phpを作って親テーマフォルダに配置するという方法もありましたが、不要なファイルを増やすのも、うーん。こちらの方が簡単そうですが。

結局、function.phpにコードを追記する方法で解決

結局、不要なファイルを増やすのも何だしと思ったので子テーマのfunction.phpに追記する方法でやってみました。

php素人なので少し手間取りましたが、素直にコードをコピペして使わせていただき、無事にエラーが解消されました。助かりました!

add_action( ‘after_setup_theme’, ‘my_after_setup_theme’ );
function my_after_setup_theme() {
remove_action( ‘wp_enqueue_scripts’, ‘load_stylesheet’ );
}

また、自分のようなphpど素人の人のために、少々手間取った事を次にて。

phpにコードを記述した時のエラー

STINGER+2(STINGER PLUS2)の子テーマのfunction.phpはデフォルトで以下の記述になっています。

<?php
if ( !defined( ‘ABSPATH’ ) ) {
exit;
}
//親スタイルシート読み込み
add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
function theme_enqueue_styles() {
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );
}

この下に、先ほどのst-tagcssを読み込まない命令を<?php ~ ?>で挟んで以下のように追記しました。赤字が追記部分です。

<?php
if ( !defined( ‘ABSPATH’ ) ) {
exit;
}
//親スタイルシート読み込み
add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
function theme_enqueue_styles() {
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );
}
//追加部分
<?php
add_action( ‘after_setup_theme’, ‘my_after_setup_theme’ );
function my_after_setup_theme() {
remove_action( ‘wp_enqueue_scripts’, ‘load_stylesheet’ );
}
?>

すると

Parse error: syntax error, unexpected ‘<‘, expecting end of file in/app/public/wp-content/themes/stingerplus2-child/functions.php on line 11

とエラーが出てサイトが表示されません。

これは、あるべき文字が抜けている場合などに起こる構文エラーのようです。

というか、そもそもから気になっていたのですが子テーマのfunction.phpはデフォルトで、最後に?>が無いのですが、閉じなくてもエラーにならないのは何故?試しに?>を足してみるとエラーになりません。あっても無くても良いのはどうして?

そこで、追記のコードを貼る前に、以下のように先にデフォルトのコードを?>で閉じました。

<?php
if ( !defined( ‘ABSPATH’ ) ) {
exit;
}
//親スタイルシート読み込み
add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
function theme_enqueue_styles() {
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );
}
//さらに追加部分
?>
//追加部分
<?php
add_action( ‘after_setup_theme’, ‘my_after_setup_theme’ );
function my_after_setup_theme() {
remove_action( ‘wp_enqueue_scripts’, ‘load_stylesheet’ );
}
?>

すると上手く行き、エラーも解消されましたが、これでは以下の構造になります。

<?php
デフォルトのコード
?>
<?php
追記のコード
?>

もしかして全部をひとつの<?php ~ ?>で括ってもいける?とやってみたらこちらで問題無かったので、最終的にこのような追記となりました。

<?php
if ( !defined( ‘ABSPATH’ ) ) {
exit;
}
//親スタイルシート読み込み
add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
function theme_enqueue_styles() {
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );
}
//追加部分
add_action( ‘after_setup_theme’, ‘my_after_setup_theme’ );
function my_after_setup_theme() {
remove_action( ‘wp_enqueue_scripts’, ‘load_stylesheet’ );
}
?>

phpに疎いと、このようなちょっとした事に時間がとられて大変ですな(汗)
でも、いい勉強です。。

タイトルとURLをコピーしました