{"id":231048,"date":"2022-12-13T10:24:00","date_gmt":"2022-12-13T07:24:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231048"},"modified":"2022-12-13T10:26:41","modified_gmt":"2022-12-13T07:26:41","slug":"organisation-des-ecrans-de-parametres-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/organisation-des-ecrans-de-parametres-wordpress\/","title":{"rendered":"Organisation des \u00e9crans de param\u00e8tres WordPress"},"content":{"rendered":"\n<p>Comme beaucoup d&rsquo;entre nous continuent d&rsquo;avancer avec <strong><a href=\"https:\/\/php.net\/manual\/en\/migration70.new-features.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP7+<\/a><\/strong>, nous pouvons continuer \u00e0 profiter de nombreuses nouvelles fonctionnalit\u00e9s offertes par le langage.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161718-61e728aab90bf.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161718-61e728aab90bf.png\" alt=\"Organisation des \u00e9crans de param\u00e8tres WordPress\"><\/a><\/p>\n<p>En attendant, cependant, il existe encore des fonctionnalit\u00e9s de PHP et des logiciels associ\u00e9s que nous pouvons utiliser pour rationaliser notre d\u00e9veloppement. Le moins (et ce dont j&rsquo;ai <strong><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/espaces-de-noms-et-chargement-automatique-dans-wordpress\/\" title=\"\u00e9crit et parl\u00e9\">\u00e9crit et parl\u00e9<\/a><\/strong> un peu) est les espaces de noms.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161718-61e728af99d84.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161718-61e728af99d84.png\" alt=\"Organisation des \u00e9crans de param\u00e8tres WordPress\"><\/a><\/p>\n<p>Voici la chose, cependant: j&rsquo;aime avoir les fichiers et les r\u00e9pertoires de mon plugin structur\u00e9s de mani\u00e8re \u00e0 ce qu&rsquo;ils soient organis\u00e9s pour refl\u00e9ter les conventions d&rsquo;espace de noms qu&rsquo;ils suivent. Et cela peut \u00eatre fait pour les taxonomies, les m\u00e9ta-bo\u00eetes, les objets de domaine, les fonctionnalit\u00e9s li\u00e9es \u00e0 la base de donn\u00e9es, etc.<\/p>\n<p>Dans cet article, cependant, je souhaite parler d&rsquo;une mani\u00e8re d&rsquo;organiser les \u00e9crans de param\u00e8tres WordPress \u00e0 la fois de la logique &#8211; c&rsquo;est-\u00e0-dire l&#8217;emplacement de leur syst\u00e8me de fichiers &#8211; et du virtuel &#8211; c&rsquo;est-\u00e0-dire leurs espaces de noms &#8211; des structures organisationnelles.<\/p>\n<h2>Organisation des \u00e9crans de param\u00e8tres WordPress<\/h2>\n<p>Le premier point que je veux faire est le suivant\u00a0: bien que je parle de l&rsquo;organisation des \u00e9crans de param\u00e8tres de WordPress, je ne parle pas de l&rsquo;API. Au lieu de cela, supposons que pour ce post, je parle de ce qui suit\u00a0:<\/p>\n<ul>\n<li>un menu personnalis\u00e9 auquel est associ\u00e9e une <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_menu_page\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">page de menu,<\/a><\/strong><\/li>\n<li>une page de menu qui affiche les exigences d&rsquo;une page de param\u00e8tres (comme le <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nonce_field\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">champ nonce<\/a><\/strong>, etc.)<\/li>\n<li>un partiel qui contient les param\u00e8tres r\u00e9els (ou plusieurs partiels si vous cherchez \u00e0 inclure plusieurs param\u00e8tres).<\/li>\n<\/ul>\n<p>Je ne vais pas parler du processus de d\u00e9sinfection, de s\u00e9rialisation, de r\u00e9cup\u00e9ration, de validation et d&rsquo;affichage. C&rsquo;est purement organisationnel.<\/p>\n<h3>R\u00e9fl\u00e9chir au processus<\/h3>\n<p>\u00c9tant donn\u00e9 que nous allons organiser nos fichiers dans des r\u00e9pertoires qui mappent \u00e9galement 1: 1 avec des espaces de noms, r\u00e9fl\u00e9chissons exactement \u00e0 ce dont nous aurons besoin. La fa\u00e7on dont je l&rsquo;aborde est la suivante:<\/p>\n<ol>\n<li>Nous cr\u00e9ons quelque chose sp\u00e9cifiquement pour l&rsquo;application WordPress contextuelle. Cela indique un espace de noms.<\/li>\n<li>Nous allons cr\u00e9er un menu d&rsquo;administration, ce qui signifie que nous travaillons \u00e0 la fois dans la zone d&rsquo;administration de WordPress, donc un autre espace de noms, et avec des menus, qui sont un autre espace de noms.<\/li>\n<li>Ensuite, nous avons besoin de fichiers pour afficher l&rsquo;\u00e9cran standard de WordPress, nous aurons donc besoin d&rsquo;un espace de noms Views,<\/li>\n<li>Et puis nous aurons besoin d&rsquo;un code sp\u00e9cifique au domaine pour tomber dans la vue, donc nous aurons finalement besoin d&rsquo;un r\u00e9pertoire Partials (et donc d&rsquo;un espace de noms).<\/li>\n<\/ol>\n<p>Ainsi, l&rsquo;organisation finale et logique des donn\u00e9es ressemblerait \u00e0 ceci\u00a0:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161718-61e728b4f0fe4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161718-61e728b4f0fe4.png\" alt=\"Organisation des \u00e9crans de param\u00e8tres WordPress\"><\/a><\/p>\n<p>La chose la plus importante \u00e0 noter \u00e0 propos de cette organisation particuli\u00e8re des fichiers est peut-\u00eatre que la classe <strong>AdminMenu<\/strong> est une classe de base dont toutes les classes sp\u00e9cifiques (ou plus concr\u00e8tes) peuvent h\u00e9riter.<\/p>\n<p>Cela signifie que la classe <strong>AcmeAdminMenu<\/strong> en h\u00e9rite certaines propri\u00e9t\u00e9s et fonctions, puis impl\u00e9mente sa logique ou ajoute \u00e9galement sa logique.<\/p>\n<h3>Espacement des noms de chaque fichier<\/h3>\n<p>Lorsque vous organisez vos fichiers de cette mani\u00e8re, les espaces de noms deviennent presque \u00e9vidents, n&rsquo;est-ce pas\u00a0? Voici l&rsquo;espace de noms pour chacun des fichiers\u00a0:<\/p>\n<ul>\n<li>WordPressAdminMenuAdminMenu<\/li>\n<li>WordPressAdminMenuAcmeAdminMenu<\/li>\n<li>WordPressAdminMenuViewsSettings<\/li>\n<li>WordPressAdminMenuViewsSettingsPartials<\/li>\n<\/ul>\n<p>Notez que puisque <strong>acme-settings.php<\/strong> n&rsquo;est techniquement qu&rsquo;un balisage pour les options de rendu, il n&rsquo;a pas n\u00e9cessairement besoin d&rsquo;\u00eatre dans un espace de noms car il est inclus par la <strong>vue<\/strong> qui le rend.<\/p>\n<p>Quoi qu&rsquo;il en soit, si vous aimez garder les choses aussi organis\u00e9es que possible, il est logique d&rsquo;imbriquer un partiel dans un r\u00e9pertoire nomm\u00e9 uniquement.<\/p>\n<h2>Qu&rsquo;en est-il du code\u00a0?<\/h2>\n<p>Si vous \u00eates int\u00e9ress\u00e9 \u00e0 voir le code pour quelque chose comme \u00e7a, j&rsquo;envisage de cr\u00e9er un petit plugin qui montre comment tout cela s&#8217;embo\u00eete. Apr\u00e8s tout, c&rsquo;est un peu de haut niveau, n&rsquo;est-ce pas? Je veux dire qu&rsquo;il n&rsquo;y a pas de mise en \u0153uvre.<\/p>\n<p>L\u00e0 encore, si cela vous aide \u00e0 vous orienter dans la bonne direction pour un projet actuel ou futur, cela peut suffire.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je veux parler d&rsquo;une fa\u00e7on d&rsquo;organiser les \u00e9crans de param\u00e8tres WordPress \u00e0 partir de la logique et des structures organisationnelles virtuelles.<\/p>\n","protected":false},"author":1,"featured_media":236109,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,832,801,862],"tags":[1167],"class_list":["post-231048","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-php-3","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=231048"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231048\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/236109"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=231048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=231048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=231048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}