Cum să determini, dintr-un script de plugin, dacă tema activă are <h1>Titlul articolului</h1>
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).

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
).

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>.

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.
