Sélectionner une page


Le projet Gutenberg et sa fonction éventuelle d’éditer entièrement le site Web sont confrontés à un problème majeur qui doit être résolu. Thèmes basés sur des blocs le futur est actuellement en route vers un système de modèles qui se composera de simples fichiers HTML. Bien que cela fonctionne pour la plupart des résultats d’un sujet, le problème est de déterminer comment le projet gérera les valeurs dynamiques.

La majeure partie de la discussion a porté sur la manière de gérer les URL, qui sont probablement le cas d’utilisation le plus courant. Actuellement, les modèles de thèmes contiennent toutes sortes de contenus dynamiques. Une grande partie de cela sera remplacée par des blocs au fur et à mesure que nous passerons à l’édition complète du site. Cependant, toutes les données dynamiques n’ont pas d’équivalent bloc.

Un bon exemple est que les auteurs de sujets ne peuvent pas ajouter cela pour le moment URL de la page d’accueil vers le bloc de navigation. Certains thèmes expérimentaux basés sur des blocs en utilisent un simple / Panneau indiquant la mauvaise position sur de nombreuses installations WordPress.

Résoudre ce problème le plus tôt possible est important pour la progression du développement du sujet dans un monde en blocs. Cependant, une telle solution doit être élaborée avec soin afin que la communauté thématique ne s’enlise pas pendant une décennie ou plus avec une mise en œuvre médiocre des modèles.

Les propositions actuelles

Le référentiel Gutenberg en a actuellement un Billet ouvert pour discussion pour traiter les valeurs dynamiques dans les modèles. Il existe actuellement quatre suggestions pour résoudre le problème.

Remplacement des cordes à la volée

Une solution serait d’utiliser PHP pour analyser chaque fichier HTML et remplacer les chaînes qui représentent des données dynamiques à la volée. Cela nécessiterait d’analyser tous les modèles d’un sujet à chaque fois que la page se charge. L’inconvénient est que cela ralentirait le chargement de la page. Nous aurions besoin de tests unitaires réels pour voir à quel point cette méthode augmente le temps de chargement.

Supposons qu’un moustache– Syntaxe similaire, les modèles auraient des valeurs comme la sortie d’image suivante:

<img src="https://wptavern.com/{{ theme_image_example }}" />

Un avantage supplémentaire de l’introduction d’une telle solution est que WordPress peut automatiquement échapper à ces valeurs dynamiques par défaut. Ce serait une aubaine pour soumettre la sécurité qui est l’une des plus importantes problèmes majeurs rencontrés par l’équipe d’examen des sujets.

Remplacement de chaîne unique

La deuxième solution suggère d’utiliser la même méthode, mais en analysant les fichiers HTML une fois après avoir activé le sujet et en remplaçant les valeurs dynamiques par des valeurs appropriées. Le plus grand avantage de cette méthode est que l’analyse n’affecte pas la vitesse de chargement frontal.

Cette méthode pose problème car les modifications apportées aux modèles après la première analyse ne sont pas prises en compte. Il ne traite pas non plus des scénarios dans lesquels une valeur change via l’entrée utilisateur. Par exemple, un utilisateur peut décider de changer l’emplacement de sa page de publication de blog. Par conséquent, une URL analysée qui devient statique pointerait vers le mauvais emplacement.

Modèles au format JSON

Une troisième solution suggère l’idée de convertir des fichiers de rubrique en JSON. Il est beaucoup plus facile d’analyser et d’extraire des données d’un fichier JSON que d’un fichier HTML. Cependant, les concepteurs de thèmes n’écrivent pas JSON pour créer une sortie de modèle. Le HTML existe pour une raison.

Cette solution lèverait la barrière pour les nouveaux auteurs de sujets si haut qu’il serait rare que ceux qui viennent d’apprendre le CSS et le HTML de base se lancent dans le développement de thèmes WordPress. Cette idée est si étrangère à l’idée de conception de modèle qu’elle ne devrait pas être une considération sérieuse.

Modèles qui renvoient des blocs via PHP

La quatrième et dernière suggestion est d’utiliser des fichiers PHP avec une fonction qui renvoie un modèle de bloc. Cette méthode serait simple et pourrait être facilement apprise par les rédacteurs de sujets existants familiers avec PHP.

Un modèle ressemblerait à ceci:

function my_theme_front_page() {
	return '<!-- wp:cover {"url":"' . get_template_directory_uri() .'/block-background-image.png","id":273,"dimRatio":0,"minHeight":647,"align":"wide"} -->';
}

Cette idée se concentre davantage sur PHP que sur HTML. Ce serait la solution la plus simple à mettre en œuvre pour l’équipe de développement de Gutenberg. Cependant, comme avec la méthode JSON, cela augmenterait la barrière à l’entrée pour les nouveaux auteurs de sujets. Cela signifie que les guillemets et les guillemets doubles ne sont pas confondus. La méthode est sujette aux erreurs et semble étrangère aux modèles modernes.

Les modèles doivent se concentrer sur le HTML

Les modèles doivent toujours être HTML en premier. Même dans notre système de thèmes actuel, les auteurs de thèmes peuvent créer des thèmes beaux, sûrs et fonctionnels simplement en connaissant HTML et CSS. PHP est secondaire, surtout en ce qui concerne les modèles. Notre système de modèles est basé sur la connaissance HTML et l’insertion de quelques Balises de modèleCe sont des fonctions PHP que WordPress fournit pour l’insertion entre les balises HTML. Cette simplicité a en partie rendu le développement de thèmes WordPress si facile à apprendre pour quiconque souhaite investir du temps.

Les thèmes basés sur des blocs peuvent abaisser la barrière encore plus loin que notre système de modèles actuel. Cependant, les modèles tels que les fonctions JSON ou PHP vont à l’encontre de cela. Une solution qui nous éloigne davantage des éléments de base du Web, le HTML, ne devrait pas être discutée.

Il est peut-être temps d’utiliser un moteur de template PHP adapté. Il existe de nombreux exemples. branche, lame, Smartyet d’autres existent depuis des années. Celles-ci ont également des barrières à l’entrée sous la forme d’une nouvelle syntaxe, mais cela ne devrait pas être plus difficile que d’apprendre à ajouter des balises de modèle au système actuel.

À tout le moins, nous devons trouver une solution pour traiter les données dynamiques dans des fichiers HTML essentiellement statiques.



Source link

Recent Posts