Come visualizzare i file nelle directory nella schermata "Modifica Temi"
Mi piacerebbe avere cartelle nella directory del mio tema per script e stili, ma non riesco ad accedere a queste cartelle nell'interfaccia "Modifica Temi". Questo è problematico per i clienti che non mi danno accesso FTP. Esiste un modo per vedere queste cartelle e i file al loro interno dalla sezione di amministrazione di WordPress?
Non esiste un modo per farlo senza modificare il core.
Dovresti vedere i file .php
che si trovano nelle sottodirectory, ma non vedrai nulla al di sopra della directory radice del tema per i file .css
e non vedrai alcun file JavaScript.
Se dai un'occhiata a wp-admin/theme-editor.php
, le righe rilevanti sono...
<?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
è un oggetto WP_Theme
che rappresenta il tema corrente. Viene creato qualche riga più sopra.
Il metodo get_files
cerca in una directory confrontando l'estensione del file (primo argomento) e utilizzando la profondità (secondo argomento). La prima chiamata a get_files
recupera tutti i file PHP nella directory del tema e in qualsiasi sottodirectory un livello sopra la directory del tema.
La seconda chiamata recupera tutti i file CSS nella directory del tema ma non entra ricorsivamente nelle sottodirectory (nota la mancanza dell'argomento $depth
).
Non c'è molto che tu possa fare al riguardo; c'è una evidente mancanza di chiamate a apply_filters
e do_action
in theme-editor.php
e anche il metodo get_files
ne è privo. Sei piuttosto limitato.
E quando PHP non funziona, è il momento di provare i brutti hack JavaScript!
Sfortunatamente, neanche questo va bene. Ho provato ad esplorare l'aggiunta di file alla lista tramite JavaScript e ajax, ma cliccando su un file aggiunto via JS si ottiene un messaggio di errore a causa di una funzione chiamata validate_file_to_edit
che controlla il file corrente da modificare rispetto alla lista di $allowed_files
(vedi il codice sopra che recupera tale lista).

Il plugin Advanced Code Editor offre questa funzionalità.
Dalla descrizione del plugin:
Abilita l'evidenziazione della sintassi negli editor di codice integrati per temi e plugin. Supporta PHP, HTML, CSS e JS.
Modifica efficacemente i tuoi temi o plugin quando hai accesso solo a un browser, grazie all'evidenziazione della sintassi negli editor di codice integrati di WordPress. Supporta PHP, HTML, CSS e JavaScript
Modifica: Il plugin menzionato sopra non sembra avere l'albero delle directory per i temi; solo per i plugin. Esiste, tuttavia, un altro plugin che fornisce questa funzionalità: WPide
Dalla descrizione del plugin:
Albero dei file che ti permette di accedere e modificare qualsiasi file nella cartella wp-content (plugin, temi, upload, ecc.)
È stato anche creato un ticket trac su questo argomento; si spera che questo problema venga risolto in una versione futura di WordPress.

Non è ancora quello che sta cercando - questo plugin cambia solo l'aspetto dell'editor e aggiunge alcune funzionalità interessanti, ma non gli permette di modificare tutti i file presenti nella directory del suo tema (che è il problema reale)

Dovrebbe esserci un albero delle directory a destra della pagina... puoi accedere a tutti i file css, js, html e php da lì

Wow, plugin fantastico e viene da un collega di WPSE: @bainternet :)

Ma @NikolaIvanovNikolov ha ragione, non c'è la modifica delle sottocartelle per i temi. L'editor dei plugin ce l'ha, ma anche una semplice installazione lo fa. ..... Nikola, sembra che non ci sia davvero una soluzione per questo, a parte hackerare il core o creare una pagina di opzioni personalizzata per gestire CSS personalizzati (se era quello il caso).

Il plugin WPide sembra supportare un albero di directory per i temi.

Faccio la stessa cosa che fai tu e organizzo le cose in cartelle. Non uso mai quell'editor ma ho appena dato un'occhiata a uno dei miei siti e posso vedere i file ma non le directory. Cioè, i file sono elencati come presenti e sono modificabili, ma non vengono visualizzati per directory. Non puoi capire in quale cartella si trovano a meno che non leggi l'URL per i link.
Se stai parlando di un child theme, ho difficoltà a vedere alcuni dei file e non so perché. Il proprietario, il gruppo e i permessi corrispondono sia sul tema genitore, i cui file riesco a vedere, che sul child theme, alcuni dei cui file non riesco a vedere. Non avevo mai notato il problema finché non è emersa questa domanda.

Non vedo alcun file che si trovi in una directory! Ad esempio, nella mia cartella css/, ho 'style.css', 'style-med.css' e 'style-mobile.css'. Nessuno di questi è visibile dalla pagina "Modifica Temi" :(

Questo non è un problema per tutti gli utenti.
Pertanto, aggiorna a WordPress 3.4.x se non l'hai già fatto.
Ricorda che css/style.css apparirà in ordine alfabetico sotto la 'c', ma separato sotto Stili in fondo.
Se non funziona, prova lo stesso tema su un'installazione locale - se funziona lì, potrebbe essere che il loro server non consenta il listing ricorsivo.

Affronto lo stesso problema quasi ogni giorno con i nostri clienti WordPress.
Utilizzo un plugin che consente di modificare tutti i file di WordPress. Ma non è sicuro per gli account su hosting condiviso (a volte il plugin permette di modificare qualsiasi file sull'intero server).
Questo plugin è stato rimosso da wordpress.org (penso per motivi di sicurezza) e il dominio dell'autore ora è scaduto. Ho trovato una piccola recensione qui: http://www.themepremium.com/access-ftp-from-wordpress-dashboard-using-myftp-wordpress-plugin/
Di seguito posterò un link a una copia del plugin.
NOTA: Non ho alcuna relazione con l'autore di questo plugin e non l'ho modificato. Non mi assumerò alcuna responsabilità per come utilizzerai il plugin.

Se non hai accesso FTP ma puoi utilizzare un piccolo trucco nell'editor del tema...
Basta aggiungere il seguente codice a un template esistente:
<?php
@file_put_contents(get_template_directory() .'/template-custom-page.php', 'contenuto temporaneo');
?>
Visita un URL che utilizza il template dove hai aggiunto il codice per creare il file e dovrebbe creare il file per te (assumendo che l'utente del server web abbia i permessi per creare file nella cartella del tema).
Rimuovi il codice aggiunto dal primo template (dopo che il file è stato creato) altrimenti il codice cancellerà sempre il contenuto del file quando viene eseguito.

Per coloro che cercano informazioni più recenti, AceIDE (derivato dal progetto WPide non più mantenuto) funziona abbastanza bene per modifiche rapide e sporadiche.
Tieni presente che le modifiche apportate a temi e plugin verranno sovrascritte dagli aggiornamenti, quindi modificare in questo modo è una pessima pratica.

Non preoccuparti, non posso commentare altre risposte altrimenti l'avrei semplicemente fatto.

Mah... non preoccupartene. È più un difetto nel sistema di punteggio dei siti tipo Stack Overflow. Quando sei sotto i 50 punti non puoi commentare le domande o fare cose del genere. In realtà, ho commentato questa domanda solo perché tutto ciò che riguarda la modifica dei file core è un enorme campanello d'allarme per me, quindi ho avuto una reazione impulsiva. Saluti amico!
