非IT業界のweb担当者一年生ブログ

出版社でweb担当となったITの素人達が、web、ITのあれこれを備忘録的にまとめるブログ。

TCDテーマでサーバ移転の際にロゴ画像が表示されない不具合の解決方法

 web担当一年生の岩本@GB_iwamotoです。

twitter.com

今回は、ワードプレスのテーマである「TCDテーマ」を使用している方は読んでおいて欲しい内容です。

【ご協力のお願い】
タイトルにある内容と同症状で苦しんでいる方々がいらっしゃいます。
ここでお話する解決方法は他には書かれていない情報ですので、
是非シェアしていただけると幸いです。

 

特定条件下で「TCDテーマオプション」にある「ロゴの設定」が機能しなくなり、ロゴがアップロードできなくなるという不具合に関して、解決方法を見つけました。

その特定条件下とは、サーバ移転をした際に起こります。

まずは、どういった流れでその状況になったかをお話し、最後に解決方法をご説明します。

 

不具合の発生と解決までの流れ

①サーバ移転前にロゴ画像がSSL化できない問題

②サーバ移転後にロゴアップローダーの不具合発生

③エラーの特定

④修正

 

①TCDテーマにおける旧式のロゴアップローダーはSSL化に対応していない関数が使われていた

 

運営しているwebサイトにて、SSL化を試みた所、ロゴ画像だけが「http」のURLから切り替わらないという不具合が起きました。

当webサイトにおけるテーマはTCDテーマを使用。
そのTCDテーマには、ロゴ画像をアップロードする機能(ロゴアップローダー)があります。

不具合を特定するために検索を開始。
TCDテーマの運営会社によるサイトにて、当該不具合の解決策にあたるコードを見つけます。
そこで書かれていた原因としては、旧式のロゴアップローダーはSSL化に対応していない関数が使われているとの事でした。

tcd-manual.net

上記記事の指示に従い、コードをコピペして書き換え、ロゴ画像をSSL化する事に成功。

 

以上は半年前に行っていた内容で、以下の内容から2018年8月に移ります。

 

②サーバ移転をした際、ロゴアップローダーが機能しなくなる

運営しているwebサイトを新しいサーバに移転する事になりました。

サイトの表示スピードを速めるためです。

 

無事に移転が終了したかと思いきや、ロゴ画像だけが表示されていないという不具合を確認。

画像URLを確認した所、「httpss」という存在しないURLとして表示されていました。

 

一旦、ロゴ画像の削除を試みるため、アップローダーを起動させると、ロゴの画像が真っ白。

削除する事は出来ますが、再アップロードをすると再び真っ白になり、URLがhttpssという状況が繰り返されます。

 

アップローダーを動かしているheader-logo.php内のコードが書き換わってしまっている事を発見。

エラーの解決方法を調査するため検索を開始。

TCDテーマの運営会社によるサイトにて、下記記事を見つけます。

design-plus1.com

この記事は6年前の内容になりますが、サーバ移転に伴い、PHPCGI版からモジュール版に変更されているため該当する可能性があると仮説を立てます。

しかし、対処方法の内容が難しいうえに、CGI版に戻したいわけではありません。

 

また、この記事の文末に、どうしてもアップローダーが機能しない場合、機能を削除して直接コードを書き換えて欲しいとあります。
これでは、このテーマを購入した意味がない。

 

困り果てていましたが、検索の最中にこんな記事を見つけました。

 

roadbikelife.net

TCDのテーマ自体WordPressが普及してきたころから長い間様々なテーマをリリースしてきたこともあり、おそらく古いコードを使いまわしていて潜在的なバグを生んでしまったのだろうと思います。

 

初心者にとっては、不信感が爆発的になる状況。

ですが、この情報はエラー箇所を確信する決め手となりました。

 

つまり、TCDのテーマが原因である事は間違いなく、ロゴのアップローダーをプログラムしている"header-logo.php"にしか原因はあり得ないということです。

それも検索していても出ない情報となれば、プログラマーにとっては深い問題ではなく簡単なバグである可能性が濃厚。

 

難しい問題で自分のような初心者ではどうしようもないのではないか、という先入観を捨て、再調査。

そこで、冒頭のTCDの運営会社による記事に戻る事になります。

tcd-manual.net

 

ここにあるソースコードの該当箇所をもう一度見直しました。

すると、問題が起きているサイトの方のheader-logo.phpは下記のようになっていました。

サーバ移転後にロゴの不具合を起こすTCDテーマのheader-logo.php該当箇所

 

'http'と'https'の後にあった:(コロン)が抜けています。

 

【正しいコード】

修正箇所の正しいコード


PHP内の他のコードではコロンがあり、httpとhttpsのコードにのみ発生
していました。
その内容から察するに、先程の記事で指摘されていたSSL化するに適していない古いコードだったのではないでしょうか。

 

④親テーマと子テーマのheader-logo.php内にある該当箇所にコロンを入れて修正完了。

エラー箇所が特定できたので、コロンを入れて本来のコードに戻していきます。

まずは子テーマを修正。

しかし反映されず。

 

もしやと思い、親テーマを見ると親テーマも変更されていました。

両方の箇所を修正すると、アップローダーが正常に機能。

解決いたしました。

2015年発売のTCDテーマでも同じ不具合が起きる

 また、私たちweb担一年生では、2015年に発売されたTCDの別テーマをもう一つ購入していました。
そちらも使って、同じ状況になるかを試した所、全く同じ状況が再現されました。

皆様、ご注意いただけたらと思います。

 

今回の情報が、同じweb担一年生な方々のお役に立つ情報だったら光栄です!

TCD,ロゴ,アップロード,できない,不具合,サーバ移転,エラー,コード