Cum să vezi fișierele din directoare în ecranul "Editare Temă"

12 nov. 2012, 00:01:42
Vizualizări: 18.4K
Voturi: 4

Îmi place să am foldere în directorul temei pentru scripturi și stiluri, dar nu pot accesa aceste foldere în interfața "Editare Temă". Acest lucru este problematic pentru clienții care nu îmi oferă acces FTP. Există vreo metodă prin care să pot vedea aceste foldere și fișierele din ele direct din secțiunea de administrare WordPress?

4
Comentarii

De ce trebuie să folosești editorul de teme din WordPress? Poți crea cu ușurință o pagină personalizată pentru a afișa astfel de fișiere și să adaugi un editor vizual (oricare ai prefera) pentru a codifica după cum dorești.

grosshat grosshat
16 nov. 2012 10:07:03

Clienții care nu îți oferă acces FTP sunt clienți proști, sau îți oferă alternative mai bune precum acces shell. Probabil este o problemă de comunicare pentru că nu știu ce este FTP și încearcă să se protejeze. Cere acces la lucrurile de care ai nevoie pentru a-ți face treaba, la urma urmei nu plătești un instalator să-ți repare chiuveta dar îi refuzi accesul în casă.

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

Posibilă dublare a: cum să faci ca fișierul de stiluri să apară în editorul de teme?

brasofilo brasofilo
20 nov. 2012 01:38:59

pur și simplu adaugă file_put_contents(get_template_directory() .'/template-custom-page.php', 'temporary content'); într-un șablon existent. Vizitează acea pagină și va crea fișierul pentru tine (dacă utilizatorul serverului web poate crea fișiere).

Patrick Forget Patrick Forget
28 iul. 2016 20:55:42
Toate răspunsurile la întrebare 8
0

Nu există o modalitate de a face acest lucru fără a modifica nucleul.

Ar trebui să vezi fișierele .php care se află în subdirectoare, dar nu vei vedea nimic deasupra directorului rădăcină al temei pentru fișierele .css și nu vei vedea niciun fișier JavaScript.

Dacă te uiți la wp-admin/theme-editor.php, liniile relevante sunt...

<?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 este un obiect WP_Theme care reprezintă tema curentă. Este creat câteva rânduri mai sus.

Metoda get_files caută într-un director prin potrivirea extensiei fișierului (primul argument) și folosind adâncimea (al doilea argument). Prima apelare a get_files preia toate fișierele PHP din directorul temei, precum și din orice subdirectoare de un nivel deasupra directorului temei.

A doua preia toate fișierele CSS din directorul temei, dar nu intră recursiv în subdirectoare (observă lipsa argumentului $depth).

Nu poți face prea multe în legătură cu asta; există o lipsă evidentă a oricăror apeluri la apply_filters și do_action în theme-editor.php, iar metoda get_files le lipsește de asemenea. Ești destul de limitat.

Și când PHP nu funcționează, este timpul să încerci hack-urile urâte cu JavaScript!

Din păcate, nici asta nu merge. Am încercat să explorez adăugarea fișierelor în listă prin JavaScript și ajax, dar dacă dai click pe un fișier adăugat prin JS, primești un mesaj de eroare din cauza unei funcții numite validate_file_to_edit, care verifică fișierul curent de editat față de lista de $allowed_files (vezi codul de mai sus care preia acea listă).

16 nov. 2012 05:54:01
6

Pluginul Advanced Code Editor oferă această funcționalitate.

Din descrierea pluginului:

Activează evidențierea sintaxei în editorii integrați de cod sursă pentru teme și pluginuri. Suportă PHP, HTML, CSS și JS.
Editează eficient temele sau pluginurile tale atunci când ai acces doar printr-un browser, prin activarea evidențierii sintaxei în editorii de cod sursă integrați în WordPress. Suportă PHP, HTML, CSS și JavaScript


Editare: Pluginul menționat mai sus nu pare să aibă arborele de directoare pentru teme; doar pentru pluginuri. Există însă un alt plugin care ofică această funcționalitate: WPide

Din descrierea pluginului:

Arbore de fișiere care îți permite să accesezi și să editezi orice fișier din directorul wp-content (pluginuri, teme, încărcări etc.)

De asemenea, a existat un ticket trac pe această temă; sperăm că această problemă va fi rezolvată într-o versiune viitoare a WordPress.

18 nov. 2012 21:59:42
Comentarii

Încă nu este ceea ce caută el - acest plugin doar schimbă aspectul editorului și adaugă câteva funcții interesante, dar tot nu îi permite să editeze toate fișierele din directorul temei sale (care este problema reală)

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

Ar trebui să existe un arbore de directoare în partea dreaptă a paginii... poți accesa toate fișierele css, js, html și php de acolo

shea shea
19 nov. 2012 21:10:46

Uau, plugin mișto și este de la un coleg de la WPSE: @bainternet :)

brasofilo brasofilo
20 nov. 2012 01:43:55

Dar @NikolaIvanovNikolov are dreptate, nu există editare în subdirectoare pentru teme. Editorul de plugin-uri o are, dar la fel și o instalare simplă. ..... Nikola, se pare că nu există cu adevărat nicio soluție pentru asta, în afară de hack-uit nucleul sau crearea unei pagini de opțiuni personalizate pentru a gestiona CSS personalizat (dacă acesta era cazul).

brasofilo brasofilo
20 nov. 2012 02:07:17

Plugin-ul WPide pare să suporte un arbore de directoare pentru teme.

shea shea
20 nov. 2012 05:53:06

Acel tichet Trac a fost închis ca rezolvat acum 4 ani; 14175 este similar dar a fost închis acum 19 luni ca duplicat (al cui nu este specificat). Se pare că consensul este că acest lucru este deja rezolvat.

Paul Gregory Paul Gregory
20 nov. 2012 19:59:22
Arată celelalte 1 comentarii
2

Fac același lucru ca tine și organizez lucrurile în foldere. Niciodată nu folosesc acel editor, dar am aruncat o privire pe unul dintre site-urile mele și pot vedea fișierele, dar nu și directoarele. Adică fișierele sunt listate ca fiind prezente și sunt editabile, dar nu sunt afișate pe directoare. Nu poți spune în ce folder se află decât dacă citești URL-ul pentru linkuri.

Dacă vorbim despre un child theme, am probleme în a vedea unele dintre fișiere și nu știu de ce. Proprietarul, grupul și permisiunile corespund atât pe tema părinte, ale cărei fișiere le pot vedea, cât și pe child theme, ale cărui fișiere unele nu le pot vedea. Nu observasem problema până când nu a apărut această întrebare.

12 nov. 2012 00:19:25
Comentarii

Nu văd niciun fișier care să fie într-un director deloc! De exemplu, în folderul meu css/, am 'style.css', 'style-med.css' și 'style-mobile.css'. Niciunul dintre acestea nu este vizibil din pagina "Editare teme" :(

Voriki Voriki
12 nov. 2012 00:33:48

Am verificat răspunsul meu verificând un alt site de pe un server diferit. Cu toate acestea, pe un al treilea site am probleme să văd unele dintre fișierele pentru o temă copil, dar nu pentru tema părinte. Ar putea fi acest lucru legat de situația ta?

s_ha_dum s_ha_dum
12 nov. 2012 00:57:02
0

Acesta nu este o problemă pentru toți utilizatorii.

Prin urmare, actualizați la WordPress 3.4.x dacă nu ați făcut-o deja.

Rețineți că css/style.css va apărea alfabetic sub litera 'c', dar separat sub secțiunea Stiluri în partea de jos.

Dacă acest lucru nu funcționează, încercați aceeași temă pe o instalare localhost - dacă funcționează acolo, ar putea fi din cauza faptului că serverul lor nu permite listarea recursivă.

20 nov. 2012 20:05:31
0

Mă confrunt cu aceeași problemă aproape în fiecare zi în relația cu clienții noștri WordPress.

Folosesc un plugin care vă permite să editați toate fișierele WordPress. Dar nu este sigur pentru conturile de hosting partajat (uneori plugin-ul permite editarea oricăror fișiere de pe întregul server).

Acest plugin a fost eliminat de pe wordpress.org (cred din motive de securitate) și domeniul autorului a expirat. Am găsit o mică recenzie aici: http://www.themepremium.com/access-ftp-from-wordpress-dashboard-using-myftp-wordpress-plugin/

Mai jos voi posta un link către o copie a plugin-ului.

NOTĂ: Nu am nicio legătură cu autorul acestui plugin și nu l-am modificat. Nu voi fi răspunzător pentru modul în care folosiți plugin-ul.

plugin-ul "myftp"

22 nov. 2012 19:57:56
0

Dacă nu ai acces FTP dar poți folosi un mic hack în editorul de teme...

Pur și simplu adaugă următorul cod într-un șablon existent:

<?php
@file_put_contents(get_template_directory() .'/template-custom-page.php', 'conținut temporar');
?>

Accesează un URL care folosește șablonul unde ai adăugat codul pentru a crea fișierul și ar trebui să creeze fișierul pentru tine (presupunând că utilizatorul serverului web are permisiunea de a crea fișiere în directorul temei).

Șterge codul adăugat din primul șablon (după ce fișierul este creat) altfel codul va șterge mereu conținutul fișierului când este executat.

28 iul. 2016 21:01:13
0

Pentru cei care caută informații mai recente, AceIDE (un fork al WPide, care nu mai este întreținut) funcționează destul de bine pentru editări rapide și neoficiale.

Rețineți că modificările aduse temelor și plugin-urilor vor fi suprascrise la actualizări, așa că editarea în acest mod este o practică proastă.

5 apr. 2017 09:57:57
4
-1

Dacă un client nu dorește sau nu poate să vă ofere acces FTP, atunci nu ar trebui să lucrați pentru el. Ați putea folosi timpul pe care l-ați petrecut încercând să modificați nucleul (core) pentru a găsi clienți mai buni.

21 nov. 2012 01:45:19
Comentarii

Scuze, dar, IMO, acesta este un comentariu, nu un răspuns.

brasofilo brasofilo
21 nov. 2012 14:23:54

Nicio problemă, nu pot comenta la alte răspunsuri altfel aș fi făcut doar asta.

dmarges dmarges
21 nov. 2012 23:23:41

ouch... niciodată nu învăț asta... scuze :/

brasofilo brasofilo
21 nov. 2012 23:32:28

Meh... nu-ți face griji. E mai mult o problemă cu sistemul de punctaj de pe site-urile de tip SO. Când ai sub 50 de puncte, nu poți comenta la întrebări sau chestii de genul ăsta. De fapt, am comentat la această întrebare doar pentru că orice legat de modificarea fișierelor de bază este un semn de alarmă major pentru mine, așa că am avut o reacție impulsivă. Noroc, amice!

dmarges dmarges
23 nov. 2012 23:48:07