Cum să determini, dintr-un script de plugin, dacă tema activă are <h1>Titlul articolului</h1>

8 nov. 2010, 23:26:35
Vizualizări: 308
Voturi: 1

Plugin-ul meu trebuie să determine dacă tema activă curent afișează titlul articolului în tag-uri de heading H1. Caut sugestii pentru abordări care să-mi permită să creez un script capabil să identifice acest lucru.

ACTUALIZARE: Plugin-ul evaluează profilul SEO al conținutului articolului pentru a ajuta utilizatorul să facă îmbunătățiri pentru poziționarea în motoarele de căutare. După titlul articolului, tag-ul h1 este unul dintre cele mai importante tag-uri pentru SEO. Totuși, nu vreau să cer utilizatorului să includă cuvântul cheie principal într-un tag h1 în conținutul articolului dacă tema face deja acest lucru (așa cum fac multe).

3
Comentarii

Cred că aceasta este o întrebare prea generală. O temă poate avea multe fișiere, unele dintre acestea ar putea avea <h1>{$title}</h1> iar altele nu. Și ce încearcă să facă plugin-ul tău? Mai multe detalii despre cazul de utilizare ne-ar ajuta să te ajutăm să răspunzi la această întrebare.

MikeSchinkel MikeSchinkel
9 nov. 2010 09:54:44

Poate ai putea clarifica de ce simți nevoia să determini ce element are tema utilizatorului în jurul apelului de titlu, ce încearcă să facă codul tău și de ce trebuie să fie conștient de elementul părinte al titlului?

t31os t31os
9 nov. 2010 16:56:11

Salut băieți, îmi cer scuze că am lăsat asta fără comentarii! Am actualizat întrebarea cu mai multe detalii.

Scott B Scott B
12 nov. 2010 22:51:47
Toate răspunsurile la întrebare 2
2

Trimite o cerere HTTP către pagină și caută în corpul răspunsului </h1>. Vezi acest Gist pentru un exemplu.

Stochează rezultatul într-o opțiune și șterge această opțiune când utilizatorul schimbă tema (folosește acțiunea switch_theme).

9 nov. 2010 16:37:58
Comentarii

Un plugin care folosește această funcționalitate este CSP WordPress Plugin - http://people.mozilla.org/~bsterne/content-security-policy/wordpress.html ; Capturi de ecran/Recenzie: http://hakre.wordpress.com/2010/06/01/prevent-xss-on-your-wordpress-blog-with-csp/ -- Acesta face o cerere ajax pentru a identifica elemente similare (surse de imagini și scripturi), dar ar trebui să funcționeze și cu căutarea de tag-uri <h1>.

hakre hakre
9 nov. 2010 20:16:13

Briliant prin simplitatea sa.

Jan Fabry Jan Fabry
9 nov. 2010 22:52:11
0

Nu poți fi niciodată sigur, dar poți folosi euristici pentru a face o presupunere educată. Vorbești doar despre paginile cu un singur articol sau și despre liste? Unele widget-uri afișează și titlurile articolelor, presupun că nu te interesează barele laterale?

De asemenea, nu știi dacă titlul este scris în tag-uri <h1>. Dacă vezi <h1>{$title}</h1>, este titlul articolului sau numele site-ului, sau ceva complet diferit?

Aș simplifica întrebarea astfel: fișierul principal de template curent (care este inclus de template-loader.php) conține <h1>[some stuff]title[some stuff]</h1>? Acest lucru ar acoperi <h1>{$title}</h1>, <h1><?php the_title(); ?></h1> și alte modele comune. Probabil că ar fi păcălit de părțile comentate, cum ar fi <!-- <h1>{$title}</h1> -->. Nu acoperă include-urile get_template_part(), poate poți adăuga asta tu (dar nu există un hook ușor pentru asta). Ai grijă la <h1>Nume site</h1> [conținut] <h2>Titlu articol</h2> [conținut] <h1>Un alt titlu mare</h1>, nu vrei să se potrivească cu asta.

Ideea generală ar fi să folosești hook (târziu) în filtrul template_include, astfel încât să știi care fișier de template va fi inclus. Analizează acest fișier, căutând modelul de mai sus. Dacă îl găsești, setează o variabilă care a fost null la true. Dacă nu poți găsi, seteaz-o la false. Cache-ază rezultatul, deoarece aceasta va fi probabil o operație costisitoare și template-ul nu se schimbă atât de des.

Nu vei ști rezultatul până când template-ul va fi inclus, dar presupun că vei modifica output-ul lui the_title() în funcție de rezultat? În acest caz, nu trebuie să știi asta atât de devreme.

9 nov. 2010 15:58:01