web-dev-qa-db-ja.com

「テーマの編集」画面でディレクトリ内のファイルを見る方法

スクリプトやスタイル用に自分のテーマフォルダにフォルダを作成したいのですが、 "テーマの編集"インターフェイスでこれらのフォルダにアクセスすることはできません。これは私にFTPアクセスを与えないクライアントにとっては問題です。 Wordpressの管理者セクションからこれらのフォルダとその中のファイルを表示する方法はありますか?

4

コアを変更せずにこれを実行する方法はありません。

サブディレクトリにある.phpファイルは表示されるはずですが、.cssファイルのルートテーマディレクトリの上には何も表示されず、JavaScriptファイルも表示されません。

wp-admin/theme-editor.php を見ると、関連する行は...

<?php
$allowed_files = $theme->get_files( 'php', 1 );
$has_templates = ! empty( $allowed_files );
$style_files = $theme->get_files( 'css' );
$allowed_files['style.css'] = $style_files['style.css'];
$allowed_files += $style_files;

$themeは現在のテーマを表す WP_Theme オブジェクトです。それは上記の数行を作成します。

get_filesメソッドは、ファイル拡張子(最初の引数)を照合し、深さ(2番目の引数)を使用してディレクトリを検索します。 get_filesを最初に呼び出すと、テーマディレクトリ内のすべてのPHPファイルと、テーマディレクトリの1つ上のレベルのサブディレクトリがすべて取得されます。

2番目はテーマディレクトリ内のすべてのcssファイルを取得しますが、サブディレクトリに再帰的に入ることはありません($depth引数がないことに注意してください)。

これについてできることはあまりありません。 apply_filters内のdo_actionおよびtheme-editor.phpへの呼び出しに目立った欠如があり、get_filesメソッドにもそれらが欠けています。あなたはかなり限られています。

そしてPHPがうまくいかないときは、醜いJavaScriptハックを試す時間があります!

残念なことに、それも良くありません。 JavaScriptとajaxでリストにファイルを追加しようとしましたが、JSで追加されたファイルをクリックするとvalidate_file_to_editというリストに対して編集する現在のファイルをチェックする$allowed_filesという関数が原因でエラーメッセージが表示されます。 ).

9
chrisguitarguy

アドバンストコードエディタ プラグインがこの機能を提供します。

プラグインの説明から:

統合されたテーマとプラグインのソースコードエディタで構文の強調表示を有効にします。 PHP、HTML、CSS、およびJSをサポートします。
WordPressの統合ソースコードエディタで構文の強調表示を有効にすることで、ブラウザにしかアクセスできない場合は、テーマやプラグインを効果的に編集できます。 PHP、HTML、CSS、JavaScriptをサポート


編集: 上記のプラグインはテーマ用のディレクトリツリーを持っていないようです。プラグインのみしかし、=この機能を提供する別のプラグインがあります: WPide

プラグインの説明から:

あなたのwp-contentフォルダ(プラグイン、テーマ、アップロードなど)内のファイルにアクセスして編集することを可能にするファイルツリー

このトピックに関する tracチケット もありました。うまくいけば、これはWordPressの将来のバージョンで修正されるでしょう。

5
shea

あなたがFTPアクセスを持っていなくても、テーマエディタでちょっとしたハックを使うことができるなら...

既存のテンプレートに次のコードを追加するだけです。

<?php
@file_put_contents(get_template_directory() .'/template-custom-page.php', 'temp content');
?>

ファイルを作成するためのコードを追加したテンプレートを使用しているURLにアクセスします。これにより、Webユーザーがテーマフォルダにファイルを作成する権限を持っていると想定されます。

最初のテンプレートから追加されたコードを削除します(ファイルの作成後)。それ以外の場合、コードは実行時に常にファイルの内容を消去します。

0
Patrick Forget

私はあなたと同じことをし、物をフォルダに整理します。私はそのエディタを決して使いませんが、私は自分のサイトの1つを見ただけでファイルは見ることができますがディレクトリは見ることができません。つまり、ファイルは存在するものとして表示され、編集可能ですが、ディレクトリ別には表示されません。リンクのURLを読んでいない限り、それらがどのフォルダーにあるのかわかりません。

あなたが子供のテーマについて話しているのであれば、私はいくつかのファイルを見るのに苦労しています、そしてなぜ私は知りません。所有者、グループ、およびアクセス権は、私が見ることができるファイルを持つ親テーマと、見ることができないファイルを持つ子テーマとで一致します。この質問が出るまで私はその問題に気づかなかった。

0
s_ha_dum

もっと最近の情報を探している人のために、 AceIDE (今はメンテナンスされていないWPideから分岐した)は素早くて汚い編集にはかなりうまくいく。

テーマとプラグインの編集は更新によって上書きされるので、この方法で編集するのは悪い習慣です。

0
Walf

これはすべてのユーザーにとって問題ではありません。

そのため、WordPress 3.4.xにアップデートしてください。

Css/style.cssはアルファベット順に「c」の下に表示されますが、下部の「スタイル」の下には表示されません。

これがうまくいかない場合は、localhostインストールで同じテーマを試してください - それがうまくいくなら、彼らのサーバーは再帰的なリストを許可しないかもしれません。

0
Paul Gregory

私はWordPressの顧客とほぼ毎日同じ問題に直面しています。

私はあなたがWordPressのすべてのファイルを編集することを可能にするプラグインを使います。しかし、それは共有ホスティングのアカウントには安全ではありません(時にはプラグインがサーバー全体のファイルを編集することを可能にする)。

このプラグインはwordpress.orgから削除され(セキュリティ上の理由からだと思います)、作者のドメインは期限切れになりました。私はここで小さなレビューを見つけました: http://www.themepremium.com/access-ftp-from-wordpress-dashboard-using-myftp-wordpress-plugin/ /

以下に、プラグインのコピーへのリンクを投稿します。

注: このプラグインの作者との関係はありません。変更はしていません。プラグインの使用方法については責任を負いません。

"myftp"プラグイン

0
KOt