如何在“编辑主题”屏幕中查看目录中的文件

时间:2012-11-11 作者:Voriki

我喜欢在我的主题文件夹中放置脚本和样式的文件夹,但我无法在“编辑主题”界面中访问这些文件夹。这对于不给我FTP访问权限的客户端来说是有问题的。有没有办法从Wordpress管理部分查看这些文件夹和其中的文件?

8 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

如果不修改核心,就无法做到这一点。

你应该看看.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 is是一个WP_Theme 表示当前主题的对象。这是在上面创建几行。

这个get_files 方法通过匹配文件扩展名(第一个参数)和使用深度(第二个参数)来搜索目录。第一次呼叫get_files 获取主题目录中的所有PHP文件以及主题目录上一级的任何子目录。

第二个获取主题目录中的所有css文件,但它不会递归地进入子目录(注意缺少$depth 参数)。

对此你无能为力;显然没有任何电话apply_filtersdo_action 在里面theme-editor.php 还有get_files 方法也缺少它们。你的能力相当有限。

当PHP不起作用时,是时候试试丑陋的JavaScript黑客了!

不幸的是,这也不好。我尝试通过JavaScript和ajax将文件添加到列表中,但单击JS添加的文件会导致错误消息,因为调用了函数validate_file_to_edit 将根据以下列表检查要编辑的当前文件:$allowed_files (请参阅上面获取该信息的代码)。

SO网友:shea

这个Advanced Code Editor 插件提供了此功能。

从插件描述中:

在集成主题和插件源代码编辑器中启用语法突出显示。支持PHP、HTML、CSS和JS
通过在WordPress集成源代码编辑器中启用语法高亮显示,在您只能访问浏览器时,可以有效地编辑主题或插件。支持PHP、HTML、CSS和JavaScript

<小时>Edit:上面提到的插件似乎没有主题的目录树;仅插件。然而,还有另一个插件提供了这种功能:WPide

从插件描述中:

文件树允许您访问和编辑wp内容文件夹中的任何文件(插件、主题、上载等)

还有trac ticket 关于这个话题;希望这将在未来版本的WordPress中得到修复。

SO网友:s_ha_dum

我和你做同样的事情,把事情组织在文件夹里。我从来没有使用过这个编辑器,但我只是看了一下我的一个网站,我可以看到文件,但看不到目录。也就是说,文件列为当前文件并可编辑,但它们不按目录显示。除非您阅读链接的URL,否则无法判断它们位于哪个文件夹中。

如果你谈论的是儿童主题,我很难看到一些文件,我不知道为什么。所有者、组和权限在父主题(我可以看到其文件)和子主题(我无法看到其部分文件)上匹配。直到这个问题出现,我才注意到这个问题。

SO网友:Paul Gregory

这对所有用户来说都不是问题。

因此,请更新到WordPress 3.4。如果你还没有。

记住css/样式。css将按字母顺序显示在“c”下,但在底部的样式下分开。

如果这不起作用,请在本地主机安装上尝试相同的主题-如果在那里起作用,可能是他们的服务器不允许递归列表。

SO网友:KOt

我几乎每天都要面对WordPress客户的同样问题。

我使用一个插件,允许您编辑WordPress的所有文件。但对于共享主机上的帐户来说是不安全的(有时插件允许编辑整个服务器上的任何文件)。

此插件已从wordpress中删除。org(我认为是出于安全原因)和作者的域现在已过期。我在这里找到了一些小评论:http://www.themepremium.com/access-ftp-from-wordpress-dashboard-using-myftp-wordpress-plugin/

下面我将发布一个链接到插件的副本。

NOTE: <我与这个插件的作者没有任何关系,也没有修改它。我不会对你如何使用插件负责

"myftp" plugin

SO网友:Patrick Forget

如果你没有FTP访问权限,但你可以在主题编辑器中使用一些小技巧。。。

只需将以下代码添加到现有模板中:

<?php
@file_put_contents(get_template_directory() .\'/template-custom-page.php\', \'temp content\');
?>
访问使用模板的URL,在该模板中您添加了创建文件的代码,它应该为您创建文件(假设web werver用户有权在主题文件夹中创建文件)。

从第一个模板中删除添加的代码(创建文件后),否则代码在执行时将始终删除文件内容。

SO网友:Walf

对于那些寻找最新信息的人,AceIDE (派生自现在未维护的WPide)非常适合快速而脏的编辑。

请记住,主题和插件编辑将被更新覆盖,所以这种编辑方式是不好的做法。

SO网友:dmarges

如果客户端不会或不能给你FTP访问权限,那么你就不应该为他们工作。你可以花点时间破解核心,找到更好的客户。

结束