Eviter les erreurs lors de la création d’un thème

Eviter les erreurs lors de la création d’un thème

Suite à l’envoi de thèmes sur le repository de wordpress, certains me reviennent avec des erreurs  type que je partage ici, si jamais cela peut éviter à certains d’attendre trop longtemps avant que leur thème soit validé !

Le screenshot

1- Screenshot should represent what the theme looks like on default. You screenshot shows Admin bar please remove the admin bar.

Lorsqu’on importe un screenshot du thème, bien penser à livrer une image conforme sans admin bar, sans logo(s’il n’y en a pas dans le thème)sans images qui ne seraient pas livrées avec le thème, bref, l’utilisateur doit pouvoir retrouver exactement le même rendu.

Retirer les commentaires indésirables

2- Description tag in style.css contains The 2012 theme for WordPress is a fully responsive should be your theme name.

Faute d’inattention, lorsqu’on crée un thème à partir d’un template wordpress type twenty twelve ou autre, bien penser à retirer tout commentaire rappelant le thème d’origine.

Le nommage des fonctions

3- While changing layout from customizer i got this error Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'utopia_sanitize_sidebar_placement' not found or invalid function name in E:\xampp\htdocs\theme_review\wp-includes\plugin.php on line 213

Ceci est particulier , mais quand on fait plusieurs thèmes à la fois, bien penser à vérifier le nom de chaque fonction.

Les fichiers de langue

4-rtl-language-support is working properly.

Penser à mettre un fichier rtl.css

Sécuriser ou nettoyer son code

5-admin_url should be sanitized in index.php line no.50

Faute d’inattention encore, bien penser à sanitize les fonctions type « admin-url’ avec un esc_url().Pareil pour le lien de l’image header, bien penser à entourer le lien header_image d’un esc_url().

<a href="<?php echo esc_url(home_url('/')); ?>"><img src="<?php header_image(); ?>" class="header-image" width="<?php echo get_custom_header()->width; ?>" height="<?php echo get_custom_header()->height; ?>" alt="" /></a>
                    <p><?php printf(__('Ready to publish your first post? <a href="%s">Get started here</a>.', 'personnal'), esc_url(admin_url('post-new.php'))); ?></p>

Eviter les doublons de titres

6-Remove <title><?php wp_title('|', true, 'right'); ?></title> as you have title-tag support in functions.php add_theme_support( 'title-tag' ); https://codex.wordpress.org/Title_Tag

Doublon qui arrive fréquemment à mon avis, l’appel au titre dans le header, et dans les fonctions

Utiliser la fonction register pour ses scripts

7-wp_enqueue_script( 'infinite-scroll' ); This is no available in WordPress Default_Scripts_Included

Bien penser avant d’enqueue les scripts, à les regsiter s’ils ne sont pas intégrés d’office par wp

Retirer les mentions indésirables

8-Your language file is twentytwelve.pot should be your own .pot file and named as personal.pot

Pareil que la haut, faute d’inattention, bien penser à retirer tout lien vers le thème starter de base.

Bien renseigner le fichier readme.Txt

9-Provide License Details of Scripts and Styles used in readme.txt file.

== Copyright and License ==

Roman WordPress Theme, Copyright 2015 Votre Nom.
Roman WordPress theme is distributed under the terms of the GNU GPL.

Ne pas coder de fonctions altérant le core de wordpress

10- Most of Your options are not allowed in theme options. No pay wall restricting any WordPress feature. Only put those options that can be used in the theme. You cann’t change the WordPress Features.

Pour la création d’options du thème, penser à ne jamais inclure de fonction qui modifie le Core de wp, sous forme de plugin oui, mais pas en thème : exemple  la suppression des menus du dashboard, la suppression des widget le changement des pages de connexion etc..

Utiliser le jquery par défaut de wordpress

11-There is no need to load jQuery alone when you are adding it as a dependancy for bootstrap.

 wp_enqueue_script('bootstrap-js', get_template_directory_uri() .'/js/bootstrap.min.js', array('jquery'), true);

Ici Jquery est appelé en dépendance de bootstrap, il n’y a donc pas besoin d’enqueue jquery en plus, puisqu’en plus wordpress charge deja jquery

Regrouper ses scripts et fichiers de style

12- You can combine all the functions that are added with add_action(‘wp_enqueue_scripts’,’name’) into one.

Bien penser, pour une plus grande lisibilité du code et meilleure maintenabilité, à regrouper tous les appels aux scripts dans la même fonction

Pour le signe Copyright, il faut utiliser le caractère spécial ‘&copy;’

Utiliser un filtre de nettoyage pour ses titres

13-get_the_title should always be sanitized all over the theme

Dans ce cas faire un esc_attr(strip_tags(get_the_title()))

Livrer le thème avec les fichiers de style et les scripts non minifiés

14- Please provide unminified version of css and js used by the themes.

Eviter de mettre des .min.css ou .min.js mais prendre le fchier .css et .js normal à la place

Utiliser un filtre de nettoyage pour les tags

15- {{{<?php bloginfo(‘description’); ?> }}} on header.php Not escaped

Remplacer par <?php esc_attr(bloginfo(‘description’)); ?>