Cómo ver archivos en directorios en la pantalla "Editar Temas"

12 nov 2012, 00:01:42
Vistas: 18.4K
Votos: 4

Me gusta tener carpetas en mi directorio de tema para scripts y estilos, pero no puedo acceder a estas carpetas en la interfaz de "Editar Temas". Esto es problemático para clientes que no me dan acceso FTP. ¿Hay alguna forma de ver estas carpetas y los archivos que contienen desde la sección de administración de WordPress?

4
Comentarios

¿Por qué debes usar el theme editor de WordPress? Fácilmente puedes crear una página personalizada para mostrar esos archivos y añadir un editor visual (el que prefieras) para codificar como desees.

grosshat grosshat
16 nov 2012 10:07:03

Los clientes que no te dan acceso FTP son malos clientes, o te están dando mejores alternativas como acceso por shell. Probablemente es un problema social porque carecen del conocimiento para saber qué es FTP y están cubriéndose las espaldas. Exige acceso a lo que necesitas para poder hacer tu trabajo, después de todo no pagas a un plomero para que arregle tu fregadero pero le niegas la entrada a la casa.

Tom J Nowell Tom J Nowell
18 nov 2012 22:55:46

Posible duplicado de: ¿cómo hacer que la hoja de estilos aparezca en el editor de temas?

brasofilo brasofilo
20 nov 2012 01:38:59

simplemente agrega file_put_contents(get_template_directory() .'/template-custom-page.php', 'contenido temporal'); a una plantilla existente. Visita esa página y creará el archivo por ti (si el usuario del servidor web puede crear archivos).

Patrick Forget Patrick Forget
28 jul 2016 20:55:42
Todas las respuestas a la pregunta 8
0

No hay una manera de hacer esto sin modificar el núcleo.

Deberías ver archivos .php que están en subdirectorios, pero no verás nada por encima del directorio raíz del tema para archivos .css, y no verás ningún archivo JavaScript.

Si echas un vistazo a wp-admin/theme-editor.php, las líneas relevantes son...

<?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 es un objeto WP_Theme que representa el tema actual. Se crea unas líneas más arriba.

El método get_files busca en un directorio haciendo coincidir la extensión del archivo (primer argumento) y usando la profundidad (segundo argumento). La primera llamada a get_files obtiene todos los archivos PHP en el directorio del tema así como cualquier subdirectorio un nivel por encima del directorio del tema.

El segundo obtiene todos los archivos css en el directorio del tema pero no entra recursivamente en subdirectorios (observa la ausencia del argumento $depth).

No hay mucho que puedas hacer al respecto; hay una conspicua ausencia de llamadas a apply_filters y do_action en theme-editor.php y el método get_files tampoco los tiene. Estás bastante limitado.

¡Y cuando PHP no funciona, es hora de probar los feos trucos de JavaScript!

Desafortunadamente, eso tampoco sirve. Intenté explorar añadir archivos a la lista mediante JavaScript y ajax, pero hacer clic en un archivo añadido con JS resulta en un mensaje de error debido a una función llamada validate_file_to_edit que verifica el archivo actual a editar contra la lista de $allowed_files (mira el código de arriba que obtiene eso).

16 nov 2012 05:54:01
6

El plugin Advanced Code Editor proporciona esta funcionalidad.

De la descripción del plugin:

Habilita el resaltado de sintaxis en los editores de código fuente integrados para temas y plugins. Soporta PHP, HTML, CSS y JS.
Edita eficientemente tus temas o plugins cuando solo tienes acceso a un navegador, al habilitar el resaltado de sintaxis en los editores de código fuente integrados de WordPress. Soporta PHP, HTML, CSS y JavaScript


Edición: El plugin mencionado anteriormente parece no tener el árbol de directorios para temas; solo para plugins. Sin embargo, existe otro plugin que proporciona esta funcionalidad: WPide

De la descripción del plugin:

Árbol de archivos que te permite acceder y editar cualquier archivo en tu carpeta wp-content (plugins, temas, uploads, etc.)

También ha habido un ticket en trac sobre este tema; esperemos que esto se solucione en una futura versión de WordPress.

18 nov 2012 21:59:42
Comentarios

Eso todavía no es lo que está buscando: este plugin solo cambia la apariencia del editor y de hecho añade algunas características bastante interesantes, pero aún no le permite editar todos los archivos encontrados dentro de su directorio de tema (que es el problema real)

Nikola Ivanov Nikolov Nikola Ivanov Nikolov
19 nov 2012 18:02:12

Debería haber un árbol de directorios a la derecha de la página... puedes acceder a todos los archivos css, js, html y php ahí

shea shea
19 nov 2012 21:10:46

Wow, plugin genial y es de un compañero de WPSE: @bainternet :)

brasofilo brasofilo
20 nov 2012 01:43:55

Pero @NikolaIvanovNikolov tiene razón, no hay edición de subcarpetas para temas. El editor de plugins sí lo tiene, pero también lo tiene una instalación estándar. ..... Nikola, parece que realmente no hay solución para eso, aparte de hackear el núcleo o crear una página de opciones personalizada para manejar CSS personalizado (si ese era el caso).

brasofilo brasofilo
20 nov 2012 02:07:17

El plugin WPide parece soportar un árbol de directorios para temas.

shea shea
20 nov 2012 05:53:06

Ese ticket de Trac fue cerrado como resuelto hace 4 años; el 14175 es similar pero fue cerrado hace 19 meses como duplicado (de qué no se especifica). Parece que el consenso es que esto ya está resuelto.

Paul Gregory Paul Gregory
20 nov 2012 19:59:22
Mostrar los 1 comentarios restantes
2

Hago lo mismo que tú y organizo las cosas en carpetas. Nunca uso ese editor pero acabo de echar un vistazo a uno de mis sitios y puedo ver los archivos pero no los directorios. Es decir, los archivos aparecen listados como presentes y son editables, pero no se muestran por directorio. No puedes saber en qué carpeta están a menos que leas la URL de los enlaces.

Si estás hablando de un tema hijo, estoy teniendo problemas para ver algunos de los archivos y no sé por qué. El propietario, grupo y permisos coinciden en el tema padre, cuyos archivos puedo ver, y en el tema hijo, algunos de cuyos archivos no puedo ver. Nunca había notado el problema hasta que surgió esta pregunta.

12 nov 2012 00:19:25
Comentarios

¡No veo ningún archivo que esté en un directorio en absoluto! Por ejemplo, en mi carpeta css/, tengo 'style.css', 'style-med.css' y 'style-mobile.css'. Ninguno de estos es visible desde la página "Editar Temas" :(

Voriki Voriki
12 nov 2012 00:33:48

Verifiqué mi respuesta revisando otro sitio en un servidor diferente. Sin embargo, en un tercer sitio estoy teniendo problemas para ver algunos archivos de un tema hijo pero no del tema padre. ¿Podría estar relacionado con tu caso?

s_ha_dum s_ha_dum
12 nov 2012 00:57:02
0

Esto no es un problema para todos los usuarios.

Por lo tanto, actualiza a WordPress 3.4.x si aún no lo has hecho.

Recuerda que css/style.css aparecerá alfabéticamente bajo la 'c', pero separado bajo Estilos al final.

Si esto no funciona, prueba el mismo tema en una instalación local - si funciona allí, podría ser que el servidor no permita el listado recursivo.

20 nov 2012 20:05:31
0

Me enfrento al mismo problema casi todos los días con nuestros clientes de WordPress.

Utilizo un plugin que permite editar todos los archivos de WordPress. Pero no es seguro para cuentas en hosting compartido (a veces el plugin permite editar cualquier archivo en todo el servidor).

Este plugin ha sido eliminado de wordpress.org (creo que por razones de seguridad) y el dominio del autor ahora ha expirado. Encontré una pequeña reseña aquí: http://www.themepremium.com/access-ftp-from-wordpress-dashboard-using-myftp-wordpress-plugin/

A continuación, publicaré un enlace a una copia del plugin.

NOTA: No tengo ninguna relación con el autor de este plugin y no lo he modificado. No me haré responsable de cómo uses el plugin.

Plugin "myftp"

22 nov 2012 19:57:56
0

Si no tienes acceso FTP pero puedes usar un pequeño truco en el editor de temas...

Simplemente añade el siguiente código a una plantilla existente:

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

Visita una URL que esté usando la plantilla donde añadiste el código para crear el archivo y debería crearse el archivo (asumiendo que el usuario del servidor web tenga permisos para crear archivos en la carpeta del tema).

Elimina el código añadido de la primera plantilla (después de que el archivo se cree) de lo contrario el código siempre borrará el contenido del archivo cuando se ejecute.

28 jul 2016 21:01:13
0

Para aquellos que buscan información más reciente, AceIDE (un fork del ahora abandonado WPide) funciona bastante bien para ediciones rápidas y sencillas.

Ten en cuenta que las modificaciones en temas y plugins serán sobrescritas con las actualizaciones, por lo que editar de esta manera es una mala práctica.

5 abr 2017 09:57:57
4
-1

Si un cliente no quiere o no puede darte acceso FTP, entonces no deberías estar trabajando para ellos. Podrías invertir el tiempo que te tomaría hackear el núcleo en simplemente encontrar mejores clientes.

21 nov 2012 01:45:19
Comentarios

Lo siento, pero, en mi opinión, esto es un comentario, no una respuesta.

brasofilo brasofilo
21 nov 2012 14:23:54

No hay problema, no puedo comentar en otras respuestas, de lo contrario simplemente habría hecho eso.

dmarges dmarges
21 nov 2012 23:23:41

ouch... nunca aprendo eso... lo siento :/

brasofilo brasofilo
21 nov 2012 23:32:28

Bah... no te preocupes por eso. Es más un defecto del sistema de puntuación de sitios tipo SO. Cuando estás por debajo de 50 no puedes comentar preguntas ni nada por el estilo. De hecho, solo comenté en esta pregunta porque cualquier cosa relacionada con tocar los archivos principales del núcleo es una gran bandera roja para mí, así que tuve una reacción instintiva. ¡Saludos colega!

dmarges dmarges
23 nov 2012 23:48:07