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

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

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

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

PHP

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

Q&A

解決済

3回答

565閲覧

WordPressのFTPで使用中のテーマを確認する方法

tokyodesk

総合スコア56

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/08/16 07:08

編集2018/09/04 02:55

WordPress初心者です。
使用中のテーマは管理画面の「外観」で確認・変更できることは知っているのですが、FTPの中のファイルで使用中のテーマを確認するにはどこを見たらいいのでしょうか。
私のWordPressには現在「twentyseventeen」「twentyfifteen」「twentysixteen」の3つのテーマが入っています。

(PHPエラー:ブログ画面)

Fatal error: Cannot redeclare get_current_theme() (previously declared in /home/wptokyometro/wptokyometro.wpxyz.jp/public_html/wp-includes/deprecated.php:2936) in /home/wptokyometro/wptokyometro.wpxyz.jp/public_html/wp-content/themes/twentyseventeen/functions.php on line 609

(PHPエラー:管理画面)

Fatal error: Cannot redeclare get_current_theme() (previously declared in /home/wptokyometro/c.wpxyz.jp/public_html/wp-includes/deprecated.php:2936) in /home/wptokyometro/wptokyometro.wpxyz.jp/public_html/wp-content/themes/twentyseventeen/functions.php on line 609

(functions.php on line 609)

function get_current_theme($new_name, $new_theme, $old_theme)

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

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

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

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

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

dit.

2018/08/27 05:14

「何のためにFTPで確認したいのか」を説明することはできますか?「FTPでは無理なのでは」という旨の回答が付いています(し私もそう思うのです)が、それでもなおFTPにこだわる理由が知りたいです。
tokyodesk

2018/08/27 23:01

何か必要性があるというわけではなく、WordPressに対しての好奇心です。あまり管理画面のようなユーザインターフェースに頼りたくないという思いもあります。
guest

回答3

0

ftp にこだわられている理由がわかりませんが...

  • どのテーマを使っているか判別できれば良い
  • PHP スクリプトを追加するのは、OK 。

ということであれば、以下のような方法はどうでしょうか?


wordpressディレクトリの wp-config.php の 「一番最後」 に 次の1行を追加する。(実行順が影響するので、必ず、wp-config.php の一番最後の行になるようにしてください。)
(エラーログに日付を入れているのは、単なる好みなので、不要なら抜いてください。)

error_log( date("Y-m-d H:i:s") ." : ". TEMPLATEPATH ."\n", 3, ABSPATH . '/tt141527_use_template.txt' );

wp-config.php を保存したら、http://wordpress.example.com/ (WordPress のindexページ) にアクセスして画面を表示させる。

ftp で、 WordPress のディレクトリの wp-config.php のあるディレクトリを確認して tt141527_use_template.txt のファイルがあるかを確認ください。

ファイル tt141527_use_template.txt の中身に 現在表示に使われているテンプレートのディレクトリが入っています。

なお、アクセスがあるたびにログファイルに追加されるので、確認が終わったら、wp-config.php に追加した1行は消しましょう。

例: ( # より後ろは、WordPress で操作した内容を追記したものです。) $ cd /var/www/wordpress/ $ cat tt141527_use_template.txt 2018-09-04 03:53:42 : /var/www/wordpress/wp-content/themes/twentysixteen 2018-09-04 03:53:43 : /var/www/wordpress/wp-content/themes/twentyseventeen # テーマを変更してみた 2018-09-04 03:53:44 : /var/www/wordpress/wp-content/themes/twentyseventeen 2018-09-04 03:53:45 : /var/www/wordpress/wp-content/themes/twentyfifteen # テーマを変更してみた 2018-09-04 03:53:49 : /var/www/wordpress/wp-content/themes/twentyseventeen # ライブビューしてみた 2018-09-04 03:53:55 : /var/www/wordpress/wp-content/themes/twentyseventeen 2018-09-04 03:54:20 : /var/www/wordpress/wp-content/themes/twentysixteen # 元に戻した。

参考:
error_log - PHPマニュアル

投稿2018/09/04 04:03

編集2018/09/04 04:12
CHERRY

総合スコア25171

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

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

tokyodesk

2018/09/05 03:43

無事にできました。 ログとしてテキストファイルに書き出すことができたんですね。 ありがとうございます。
guest

0

ベストアンサー

switch_themeを使えば有効化されたテーマが分かるので、これを利用して/wp-content/themesにでもテキストファイルを生成して使用中のテーマ名を書き出すようにすれば可能かと。

Function Reference/switch theme
https://codex.wordpress.org/Function_Reference/switch_theme
但し全てのテーマに上記のような処理をするコードを書く必要があります。

そもそもFTPで使用中のテーマを確認したいということの必要性が凡人には全くもって理解できませんが。

とりあえず通常はFTPで使用中のテーマは確認できませんので。

追記
これ以上は時間の無駄なので参考のコードを書いておく。
拡張子が必要かどうかは別として以下のようなコードで/wp-content/themesに有効中のテーマ名のファイルを生成する。
ファイル名をテーマ名にするようにしたのは可視性のみ。
これは全てのテーマのfunctions.phpに書いておく必要がある。

function get_current_theme( $new_name, $new_theme, $old_theme ) { file_put_contents( get_theme_root().'/'.$new_name.'.txt', $new_name ); $old_file = get_theme_root().'/'.$old_theme->get( 'Name' ).'.txt'; if ( file_exists( $old_file ) ) { unlink( $old_file ); } } add_action( 'switch_theme', 'get_current_theme', 10, 3 );

投稿2018/08/22 08:34

編集2018/08/28 10:50
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

tokyodesk

2018/08/25 23:31

コメントありがとうございます。 すみません、switch_themeの使い方がわかりません。 >但し全てのテーマに上記のような処理をするコードを書く必要があります 例えばtwentyseventeenディレクトリ内にはたくさんのPHPファイルがありますがどれに書けばいいのでしょうか(functions.phpでしょうか?)。 また、switch_themeの書き方もよくわかりません。 原則的に「<?php switch_theme( $template, $stylesheet ) ?>」のように書くようですが、このまま書いてもエラーになります(「$template, $stylesheet」を適宜書き換えるのだと思いますが。。)
退会済みユーザー

退会済みユーザー

2018/08/26 03:24

コーデックスに書かれたコードをそのまま書いても、また変数を書き換えても出来ません。 実際のコードやコーデックスをきちんと読みましょう。Uses: do_action() Calls 'switch_theme' action on updated theme display name.
tokyodesk

2018/08/27 04:12

$stylesheetの箇所には「twentyfifteen」などのテーマのthemeディレクトリ名を指定すればいいということはわかりましたが、それ以外の書き方が全くわからないのですが。。 また、functions.phpで「switch_theme('twentyseventeen');」と記述すると、正常にtwentyseventeenのテーマは反映されず一部の画像やCSSが適用されずに崩れるようです。
tokyodesk

2018/08/27 04:13

上記の「switch_theme('twentyseventeen');」は、twentysixteenディレクトリ内のfunctions.phpに書きました。
退会済みユーザー

退会済みユーザー

2018/08/27 08:24

うーん 全くもって違いますね。 switch_themeをどう使えばいいのかというヒント。 http://hookr.io/actions/switch_theme/
tokyodesk

2018/08/27 22:58

私には何が何やらという感じです。 switch_themeをadd_actionなどの関数の引数に指定しないと目的が実現できないということですか?
退会済みユーザー

退会済みユーザー

2018/08/27 23:01

そういうことです
tokyodesk

2018/08/27 23:08

実際にはどう書けばいいのでしょうか。
退会済みユーザー

退会済みユーザー

2018/08/27 23:10

だいだいヒントの通りです
tokyodesk

2018/08/27 23:15

テーマを表示する関数はdo_action、add_action、action_switch_themeのいずれかだと思いますが、どれでしょうか。 また、引数の「$array」を実際にどう書けばいいのかがわかりません。
退会済みユーザー

退会済みユーザー

2018/08/27 23:21

表示というか、『FTPで使用中のテーマ知る』のが目的ですよね? ヒントも中途半端にしか書かれていないのでとりあえずwp-includes/theme.phpの中身を確認してください。
tokyodesk

2018/08/27 23:26

theme.php確認しました。 多くの記述が書かれていますが着目する点はどこでしょうか。
退会済みユーザー

退会済みユーザー

2018/08/28 10:50

回答の追記をどうぞ
tokyodesk

2018/08/29 01:41

追記ありがとうございます。 いただいた内容を確認していろいろ試していましたが、PHPエラーになります。 確認なのですが、 ①拡張子が必要かどうかは別として以下のようなコードで/wp-content/themesに有効中のテーマ名のファイルを生成する ②これは全てのテーマのfunctions.phpに書いておく必要がある 例えば有効中のテーマ名が「twentyseventeen」の場合、/wp-content/themesディレクトリ直下に、twentyseventeenという名前のファイルを新規作成するということでしょうか? 拡張子はテキストファイルにしてもphp形式にしてもエラーになるため拡張子自体を外そうとしたところ、既に同名のディレクトリ(twentyseventeen)があるという警告が出るのでまだ試していません。 また、追記していただいたソースコードですが、上記新規ファイルと全てのテーマのfunctions.phpの両方に記述するのでしょうか。
退会済みユーザー

退会済みユーザー

2018/08/31 09:26

大文字小文字を区別するはずですが? エラーも色々あるので詳細不明につき的を得た返答できない。
tokyodesk

2018/09/03 00:33

大文字、小文字を区別するとはどこの部分のファイルのことでしょうか? また、上記のソースコードはテーマ名のファイルと全てのfunctions.phpの両方に記述するのでしょうか。
退会済みユーザー

退会済みユーザー

2018/09/03 08:22

貴方が行うことは、私が提示したコードを各テーマのfunctions.phpに追記し、テーマを切り替えてどうなるか確認するだけ。それ以外は何もしなくていい。
tokyodesk

2018/09/04 02:56

全テーマ内のfunctions.phpの最終行にいただいたコードを追記したところ、ブログ画面、管理画面共に正常に表示されなくなり、PHPのエラー表示のみ表示されます。 エラー表示は追記した通りです。
dit.

2018/09/04 03:56

定義済みということだと思うので、試しに追加したコードを 1行目 function my_get_current_theme( $new_name, $new_theme, $old_theme ) { 8行目 add_action( 'switch_theme', 'my_get_current_theme', 10, 3 ); と、名前を変えてみてはどうでしょうか?(もちろん全テーマ) 「テーマの切り替え時」に有効化したテーマ名.txtがthemesディレクトリ内に作成されると思います。
tokyodesk

2018/09/05 03:38

できました。 themesディレクトリ内に生成されたテキストファイルを消さずに、管理画面で何度もテーマを変えると、テキストファイルが切りかわらなかったり、ファイルの削除ができない、FTPからローカルへの転送ができないなど動作が不安定になりますが、「管理画面でテーマを切り替える→テキストファイルが生成される→そのファイルを削除→再度テーマを管理画面で切り替える」というように生成されたファイルを消してからもう一度テーマを切り替えると正常にテキストファイルが生成されるようです。 何度もアドバイスくださりありがとうございます。
guest

0

FTPからファイルを直接覗くのではなくデータベースを見る必要があるのではないでしょうか。

適用されているテンプレートを知る方法なら幾つかあるみたいですが(FTPではなく)

投稿2018/08/16 08:41

m.ts10806

総合スコア80850

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

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

tokyodesk

2018/08/21 00:39

コメントありがとうございます。
m.ts10806

2018/08/21 00:48

「解決」でいいんですよね? 結局どのように解決されたのでしょうか
tokyodesk

2018/08/21 02:30

直接的な解決はしていないと思われます。 ずっと未解決のまま放置というのはよくないのかなと思ってひとまず解決にしたのですがずっと未解決でもありなのでしょうか。 FTP内のファイルで使用しているテーマを特定するための方法については気になっているのですがひとまず保留にしました。 使用中のテンプレート一覧を表示するための、教えていただいたPHPのコードを書いたのですが書き方が悪かったみたいでブラウザ上に一覧は表示されなかったのですが、正直WordPress(というかPHPそのもの)に関する知識がゼロに近い状態なのでもう少しWordPressに慣れてから試してみようと思ってます。
m.ts10806

2018/08/21 02:35

実際に解決にしていないのであれば「解決済み」にするのはあまり良いとは言えません。 検証したことや現状を質問内容に追記して他の回答をつくのを待つか、 その検証した内容詳細を見ることで回答に追記していくかどちらかと思います。 後から他の誰かが見たときに「解決済みってなってるけど解決してない」となると、この質問の価値がなくなりますしね。
tokyodesk

2018/08/21 03:18

確かにこの質問が今後残る意味が薄れますね。 すみません。
m.ts10806

2018/08/21 03:33

ベストアンサーは解除もできたはずなので、あとはどうするか質問者さんの方で決めて進めてください。 このまま完了として自身で進めた結果、新しい質問を立てても良いですし(その際、今回の質問を関連質問としてリンクさせてください)
tokyodesk

2018/08/22 01:33

了解です。 取り急ぎベストアンサーは外しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問