Come determinare, dallo script del plugin, se il tema attivo ha <h1>Il Titolo del Post</h1>

8 nov 2010, 23:26:35
Visualizzazioni: 308
Voti: 1

Il mio plugin deve sapere se il tema attualmente attivo posiziona il titolo del post all'interno di tag di intestazione H1. Sto cercando suggerimenti su approcci per creare uno script che possa rilevare questo aspetto.

AGGIORNAMENTO: Il plugin valuta il profilo SEO del contenuto del post per aiutare l'utente a migliorare il posizionamento nei motori di ricerca. Subito dopo il titolo del post, il tag h1 è uno dei tag più importanti per l'SEO. Tuttavia, non voglio chiedere all'utente di includere la propria parola chiave principale in un tag h1 nel contenuto del post se il tema lo fa già (come molti fanno).

3
Commenti

Penso che sia una domanda troppo ampia. Un tema può avere molti file, alcuni dei quali potrebbero avere <h1>{$title}</h1> e altri no. E cosa sta cercando di fare il tuo plugin? Maggiori dettagli sul caso d'uso ci aiuterebbero a rispondere meglio a questa domanda.

MikeSchinkel MikeSchinkel
9 nov 2010 09:54:44

Forse potresti chiarire perché senti il bisogno di determinare quale elemento il tema dell'utente ha intorno alla chiamata del titolo, cosa vuole fare il tuo codice e perché ha bisogno di essere consapevole dell'elemento genitore del titolo?

t31os t31os
9 nov 2010 16:56:11

Ciao ragazzi, scusate se ho lasciato questo senza commenti! Ho aggiornato la domanda con maggiori dettagli.

Scott B Scott B
12 nov 2010 22:51:47
Tutte le risposte alla domanda 2
2

Invia una richiesta HTTP alla pagina e cerca nel corpo della risposta il tag </h1>. Vedi questo Gist per un esempio.

Memorizza il risultato in un'opzione e cancella questa opzione quando l'utente cambia tema (agganciati all'azione switch_theme).

9 nov 2010 16:37:58
Commenti

Un plugin che sfrutta questa funzionalità è il CSP WordPress Plugin - http://people.mozilla.org/~bsterne/content-security-policy/wordpress.html ; Screenshot/Recensione: http://hakre.wordpress.com/2010/06/01/prevent-xss-on-your-wordpress-blog-with-csp/ -- Esegue una richiesta ajax per identificare contenuti simili (fonti di immagini e script), ma dovrebbe funzionare anche cercando i tag <h1>.

hakre hakre
9 nov 2010 20:16:13

Brillante nella sua semplicità.

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

Non si può mai essere sicuri, ma si possono utilizzare euristiche per fare una supposizione informata. Stai parlando solo delle pagine di singoli articoli, o anche degli elenchi? Alcuni widget elencano anche i titoli degli articoli, presumo che non ti interessino le sidebar?

Inoltre, non sai se è il titolo che è scritto nei tag <h1>. Se vedi <h1>{$title}</h1>, è il titolo dell'articolo o il nome del sito, o qualcos'altro completamente diverso?

Semplificherei la domanda in questo modo: il file template principale corrente (che è incluso da template-loader.php) contiene <h1>[qualcosa]title[qualcosa]</h1>? Questo coprirebbe <h1>{$title}</h1>, <h1><?php the_title(); ?></h1> e altri pattern comuni. Probabilmente verrebbe ingannato da parti commentate, come <!-- <h1>{$title}</h1> -->. Non copre gli include con get_template_part(), forse puoi aggiungerlo tu stesso (ma non c'è un hook facile per quello). Attenzione a <h1>Nome del sito</h1> [contenuto] <h2>Titolo articolo</h2> [contenuto] <h1>Qualche altro grande titolo</h1>, non vuoi che corrisponda a quello.

L'idea generale sarebbe quella di agganciarsi (tardi) al filtro template_include, in modo da sapere quale file template verrà incluso. Analizza questo file, cercando il pattern sopra. Se lo trovi, imposta una variabile che era null a true. Se non riesci a trovarlo, impostala su false. Memorizza il risultato nella cache, poiché probabilmente sarà un'operazione costosa e il template non cambia così spesso.

Non conoscerai il risultato finché il template non verrà incluso, ma presumo che cambierai l'output di the_title() in base al risultato? In tal caso, non è necessario saperlo così presto.

9 nov 2010 15:58:01