Quando ho iniziato a pensare al template in WordPress, ho pensato a due aspetti:
- contenuti specifici per i membri ,
- contenuto che potrebbe essere suddiviso in un singolo post.
Ma più ci pensavo, più mi rendevo conto che poteva (e probabilmente dovrebbe) essere spiegato nel corso di alcuni post.
Quindi analizzerò lo stato attuale dei modelli di WordPress e quindi i modi pratici in cui possiamo organizzare, ad esempio, i nostri plug-in in modo da utilizzare PHP standard.
Successivamente, in una serie futura, esaminerò cosa significa utilizzare altri motori di creazione di modelli (sia PHP che JavaScript nel lavoro che svolgiamo).
Per cominciare, però, voglio dare un’occhiata a come vediamo spesso i modelli scritti nel contesto di temi e plugin di WordPress.
Modelli WordPress per principianti
A seconda della tua esperienza con WordPress e altri sistemi basati su PHP, la tua definizione di template sarà diversa da quella di qualcun altro.
Quindi, per cercare di creare una definizione comune che utilizzerò in questa serie di post, verrà utilizzato il codice di WordPress:
I modelli sono i file che controllano come verrà visualizzato il tuo sito WordPress sul Web.
La pagina prosegue parlando di come funziona in combinazione con il database e altre risorse e ti consiglio di leggerlo se non ne hai familiarità.
Tuttavia, la definizione di cui sopra funziona bene per come ho intenzione di andare avanti pensandoci.
1 Com’è (in questo momento)
Quando si tratta di pensare ai modelli di WordPress, penso che aiuti a considerare un singolo modello con codice simile a questo:
<div id="content-container">
<p>
Oh! The garbage chute was a really wonderful idea. What an incredible smell you've discovered! Let's get out of here!
Get away from there... No! wait! Will you forget it? I already tried it. It's magnetically sealed! Put that
thing away! You're going to get us all killed.
</p>
<h2>List of Post Titles For Acme Post Type</h2>
<?php
$args = array(
'post_status' => 'publish',
'post_type' => 'acme',
'posts_per_page' => '10'
);
$custom_query = new WP_Query( $args );
if ($custom_query->have_posts()) {
echo '<ul>';
while ($custom_query->have_posts()) {
$custom_query->the_post();
echo '<li>'. get_the_title(). '</li>';
}
echo '</ul>';
wp_reset_postdata();
}
?>
<p>
Absolutely, Your Worship. Look, I had everything under control until you led us down here. You know, it's not
going to take them long to figure out what happened to us. It could be worst... It's worst.
There's something alive in here! That's your imagination. Something just moves past my leg!
Look! Did you see that? What? Help!
</p>
</div><!-- #content-container -->
Il punto del codice sopra è che vedi che mescola PHP e HTML.
Inoltre, è importante notare che ciascuno di questi file ha uno stile utilizzando CSS e potrebbe avere un comportamento aggiuntivo controllato tramite JavaScript. A tal fine, puoi concettualizzarlo in questo modo:
Questo rappresenta un unico modello che unisce HTML e PHP in un unico modello. E quel modello viene quindi disegnato con CSS e controllato con JavaScript.
Tutti questi funzionano insieme per fornire ciò che l’utente vede.
2 L’organizzazione di sviluppatori genera prestazioni?
Ma il modo in cui funziona è un po’ disordinato e, sebbene possa sembrare buono per l’utente, solleva alcune domande:
- È performante come potrebbe essere?
- Quanto è facile da mantenere per uno sviluppatore?
- Qual è il processo di costruzione?
- come vengono mantenuti e organizzati i beni?
Certo, la maggior parte di ciò che stai leggendo sopra è molto incentrato sullo sviluppatore, ma trovo che quando un codice è organizzato in modo tale che sia facile per gli sviluppatori lavorarci spesso può essere facile anche più veloce per l’utente.
Cosa significa, però?
- Vi presentiamo Sass?
- Minimizziamo JavaScript?
- Come combiniamo queste risorse e le importiamo?
- Che dire delle query PHP personalizzate che si verificano nel contesto di ciascun modello?
E sebbene le prime cose siano importanti e ne valga la pena (e potrei trattarne una serie dopo), separare la logica dall’interno di un modello anche senza un motore di modelli può aiutare a rendere il codice più incentrato sullo sviluppatore.
Rende le cose più veloci per l’utente? Non necessariamente. Ma ci aiuta a fare il primo passo per fare proprio questo.
Riorganizziamoci
Nel prossimo post di questa serie, analizzerò il contenuto che siamo abituati a vedere nei modelli di WordPress attraverso un esempio e inizierò a riorganizzarlo in modo che sia meglio organizzato in modo tale che le tecniche possano essere utilizzate in diversi progetti.
Ciò significa spostare le cose nelle loro funzioni (o anche all’interno delle loro classi e quindi delle loro funzioni) e come possiamo chiamarle dal contesto dei nostri modelli.
In definitiva, questo porterà a un codice più facile da leggere, una migliore separazione delle preoccupazioni e ci sposterà verso modi per cambiare il modo in cui i dati vengono inseriti in un modello.