{"id":234220,"date":"2023-02-15T13:44:00","date_gmt":"2023-02-15T10:44:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234220"},"modified":"2022-11-12T00:51:58","modified_gmt":"2022-11-11T21:51:58","slug":"comment-ajouter-des-parametres-personnalises-a-un-widget-existant-dans-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/comment-ajouter-des-parametres-personnalises-a-un-widget-existant-dans-wordpress\/","title":{"rendered":"Comment ajouter des param\u00e8tres personnalis\u00e9s \u00e0 un widget existant dans WordPress"},"content":{"rendered":"\n<p>Dans cet article, nous apprendrons comment ajouter votre code HTML personnalis\u00e9 et vos param\u00e8tres \u00e0 l&rsquo;un des widgets standard de WordPress ou autres. En utilisant ces param\u00e8tres, nous apprendrons diff\u00e9rentes astuces pour manipuler le comportement des widgets en cons\u00e9quence.<\/p>\n<p>La premi\u00e8re partie; ajouter et enregistrer vos param\u00e8tres personnalis\u00e9s, est assez facile. La deuxi\u00e8me partie d\u00e9pend de ce que vous voulez faire sp\u00e9cifiquement, et cela d\u00e9pend du widget que vous manipulez. Dans ce post, j&rsquo;ai inclus deux exemples; sauter un widget en fonction d&rsquo;un param\u00e8tre (pour ajouter des param\u00e8tres pour contr\u00f4ler la visibilit\u00e9 du widget dans certains cas) et manipuler les arguments de menu du widget de navigation WordPress. L&rsquo;exemple donn\u00e9 pour la deuxi\u00e8me partie devrait vous donner une bonne id\u00e9e de la fa\u00e7on dont vous pouvez g\u00e9rer ce que vous voulez faire.<\/p>\n<h2>Ajout de param\u00e8tres personnalis\u00e9s \u00e0 n&rsquo;importe quel widget<\/h2>\n<p>Pour ajouter des param\u00e8tres personnalis\u00e9s aux widgets existants, nous utilisons une action appel\u00e9e <code>[in_widget_form](https:\/\/developer.wordpress.org\/reference\/hooks\/in_widget_form\/)<\/code>. Cette action est appliqu\u00e9e \u00e0 la <code>form()<\/code>fonction de tous les widgets, qui est la fonction responsable du rendu de la partie admin du widget.<\/p>\n<p>Avec ce filtre, nous obtenons trois param\u00e8tres, mais seuls le premier et le troisi\u00e8me nous int\u00e9ressent. La premi\u00e8re est l&rsquo;instance de widget que nous utiliserons pour r\u00e9cup\u00e9rer les noms de champ et les identifiants appropri\u00e9s et (\u00e9ventuellement) v\u00e9rifier \u00e0 quel type de widget nous sommes accroch\u00e9s. Le troisi\u00e8me param\u00e8tre est un tableau des param\u00e8tres enregistr\u00e9s du widget, que nous devons utiliser pour v\u00e9rifier l&rsquo;\u00e9tat enregistr\u00e9 pr\u00e9c\u00e9dent de nos param\u00e8tres.<\/p>\n<p>Le code ci-dessous ajoutera une case \u00e0 cocher avec le nom du param\u00e8tre &lsquo; <code>awp-custom-setting<\/code>&lsquo;. Ajustez le nom et le code HTML en fonction de l&rsquo;entr\u00e9e dont vous avez besoin. Ce qui est important, c&rsquo;est d&rsquo;utiliser <code>$widget-&gt;get_field_name()<\/code>pour ajouter des identifiants et <code>name<\/code>des attributs appropri\u00e9s \u00e0 toutes vos entr\u00e9es. La valeur de vos entr\u00e9es doit \u00eatre remplie avec ce qui a \u00e9t\u00e9 enregistr\u00e9 pr\u00e9c\u00e9demment, et c&rsquo;est quelque chose que vous trouverez dans le param\u00e8tre <code>$instance<\/code>. Pour les cases \u00e0 cocher, vous pouvez utiliser la fonction de WordPress <code>[checked](https:\/\/developer.wordpress.org\/reference\/functions\/checked\/)()<\/code>pour afficher l&rsquo;attribut coch\u00e9.<\/p>\n<pre><code>add_action('in_widget_form', function($widget, $return, $instance) {\n    ?&gt;\n    &lt;p&gt;\n        &lt;input type=\"checkbox\" class=\"checkbox\" name=\"&lt;?php echo $widget-&gt;get_field_name('awp-custom-setting'); ?&gt;\" id=\"&lt;?php echo $widget-&gt;get_field_name('awp-custom-setting'); ?&gt;\" &lt;?php checked(isset($instance['awp-custom-setting'])? $instance['awp-custom-setting']: 0); ?&gt; \/&gt;\n        &lt;label for=\"&lt;?php echo $widget-&gt;get_field_name('awp-custom-setting'); ?&gt;\"&gt;&lt;?php __('Activate something', 'txtdomain'); ?&gt;&lt;\/label&gt;\n    &lt;\/p&gt;\n    &lt;?php\n}, 10, 3);<\/code><\/pre>\n<p>Apr\u00e8s avoir ajout\u00e9 ceci au code de votre th\u00e8me <code>functions.php<\/code>ou plugin, tous les widgets devraient maintenant avoir une case \u00e0 cocher \u00e0 la fin de leur formulaire dans l&rsquo;administrateur.<\/p>\n<h3>Cibler des widgets sp\u00e9cifiques<\/h3>\n<p>Si vous souhaitez appliquer vos param\u00e8tres uniquement \u00e0 un ou plusieurs widgets sp\u00e9cifiques, vous pouvez comparer la propri\u00e9t\u00e9 <code>id_base<\/code>dans l&rsquo; <code>$widget<\/code>objet. Vous aurez besoin de conna\u00eetre l&rsquo;ID de base &#8211; si vous n&rsquo;\u00eates pas s\u00fbr, faites simplement un <code>var_dump($widget-&gt;id_base)<\/code>crochet \u00e0 l&rsquo;int\u00e9rieur, enregistrez et v\u00e9rifiez la sortie de chaque widget dans l&rsquo;administrateur. Par exemple, le widget Navigation a la base ID <code>nav_menu<\/code>, et le widget Archives a <code>archives<\/code>.<\/p>\n<p>Dans l&rsquo;exemple ci-dessous, nous v\u00e9rifions si le widget est un widget de navigation. Si ce n&rsquo;est pas le cas, la fonction est annul\u00e9e avec un <code>return<\/code>. Seuls les widgets de navigation recevront la case \u00e0 cocher personnalis\u00e9e\u00a0:<\/p>\n<pre><code>add_action('in_widget_form', function($widget, $return, $instance) {\n    if ($widget-&gt;id_base != 'nav_menu') {\n        return;\n    }\n\u00a0\n    ?&gt;\n    &lt;p&gt;\n    ...<\/code><\/pre>\n<p>Vous devriez obtenir le param\u00e8tre dans l&rsquo;administrateur comme suit\u00a0:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153158-61e509045fded.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-153158-61e509045fded.png\" alt=\"Comment ajouter des param\u00e8tres personnalis\u00e9s \u00e0 un widget existant dans WordPress\" ><\/a><\/p>\n<p>Le param\u00e8tre a donc \u00e9t\u00e9 ajout\u00e9, mais pour le moment, vos param\u00e8tres ne sont pas enregistr\u00e9s. R\u00e9parons \u00e7a.<\/p>\n<h2>Enregistrement de vos param\u00e8tres personnalis\u00e9s<\/h2>\n<p>Nous devons nous connecter \u00e0 la <code>update()<\/code>fonction du widget afin de mettre \u00e0 jour nos param\u00e8tres personnalis\u00e9s.<\/p>\n<p>Pour cela, nous utilisons le filtre <code>[widget_update_callback](https:\/\/developer.wordpress.org\/reference\/hooks\/widget_update_callback\/)<\/code>. Le processus d&rsquo;enregistrement de nos param\u00e8tres est exactement comme vous le feriez lorsque vous \u00e9crivez une classe de widget. Le filtre fournit trois param\u00e8tres\u00a0; le premier est le tableau d&rsquo;instance qui sera enregistr\u00e9. Le deuxi\u00e8me param\u00e8tre est l&rsquo;\u00e9tat qui a \u00e9t\u00e9 publi\u00e9 lors de l&rsquo;enregistrement du widget, et le troisi\u00e8me est l&rsquo;ancien \u00e9tat. Nous devons nous assurer de r\u00e9cup\u00e9rer nos nouvelles valeurs \u00e0 partir du deuxi\u00e8me param\u00e8tre et de les ajouter au premier.<\/p>\n<p>C&rsquo;est ainsi que nous mettrons \u00e0 jour l&rsquo;\u00e9tat de notre case \u00e0 cocher\u00a0; comme nous voulons enregistrer une valeur <code>true<\/code>ou <code>false<\/code>:<\/p>\n<pre><code>add_filter('widget_update_callback', function($instance, $new_instance, $old_instance) {\n    $instance['awp-custom-setting'] = isset($new_instance['awp-custom-setting']);\n    return $instance;\n}, 10, 3);<\/code><\/pre>\n<p>N&rsquo;oubliez pas d&rsquo;ajuster les noms d&rsquo;entr\u00e9e \u00e0 vos propres noms de param\u00e8tres. Si vous ajoutez plusieurs entr\u00e9es, vous devez r\u00e9p\u00e9ter cette op\u00e9ration pour chacune.<\/p>\n<p>Vous devriez maintenant voir que vos param\u00e8tres personnalis\u00e9s sont enregistr\u00e9s dans l&rsquo;administrateur\u00a0!<\/p>\n<h2>Utilisation des param\u00e8tres de widget personnalis\u00e9s enregistr\u00e9s<\/h2>\n<p>Comme mentionn\u00e9 pr\u00e9c\u00e9demment, cette partie d\u00e9pend vraiment de ce que vous voulez que vos param\u00e8tres fassent. Ce n&rsquo;est malheureusement pas aussi simple car la plupart des widgets n&rsquo;ajoutent pas de filtres ou de crochets dans leurs sorties. Commen\u00e7ons par quelque chose de simple\u00a0; \u00e9vitez de rendre le widget en fonction des param\u00e8tres.<\/p>\n<h3>Emp\u00eacher le rendu du widget en fonction du param\u00e8tre personnalis\u00e9<\/h3>\n<p>Supposons que vous ajoutez des param\u00e8tres pour d\u00e9terminer quand le widget doit \u00eatre visible\u00a0; par exemple en le cachant dans certains mod\u00e8les (masquer dans le mod\u00e8le de r\u00e9sultats de recherche, mais afficher en page d&rsquo;accueil et unique), ou r\u00e9agir \u00e0 d&rsquo;autres \u00e9tats de WordPress.<\/p>\n<p>Pour cela, nous pouvons utiliser le filtre <code>[widget_display_callback](https:\/\/developer.wordpress.org\/reference\/hooks\/widget_display_callback\/)<\/code>. Tout ce que nous avons \u00e0 faire est de v\u00e9rifier le param\u00e8tre d&rsquo;instance fourni pour notre param\u00e8tre et de revenir <code>false<\/code>si nous ne voulons pas afficher le widget.<\/p>\n<p>Ce code simple \u00e9vitera de rendre le widget si la case \u00e0 cocher personnalis\u00e9e que nous avons ajout\u00e9e ci-dessus est coch\u00e9e\u00a0:<\/p>\n<pre><code>add_filter('widget_display_callback', function($instance, $widget, $args) {\n    if ($instance['awp-custom-setting']) {\n        return false;\n    }\n    return $instance;\n}, 10, 3);<\/code><\/pre>\n<p>Vous voulez probablement comparer d&rsquo;autres \u00c9tats. Ceci est un exemple simple o\u00f9 notre case \u00e0 cocher est une case \u00e0 cocher pour &quot;Masquer dans les vues de publication unique&quot;. Nous v\u00e9rifions simplement si nous sommes actuellement \u00e0 une vue de publication unique avec <code>[is_singular](https:\/\/developer.wordpress.org\/reference\/functions\/is_singular\/)()<\/code>et si la case est coch\u00e9e, nous retournons <code>false<\/code>.<\/p>\n<pre><code>add_filter('widget_display_callback', function($instance, $widget, $args) {\n    if (is_singular() &amp;&amp; $instance['awp-custom-setting']) {\n        return false;\n    }\n    return $instance;\n}, 10, 3);<\/code><\/pre>\n<h3>Modification des param\u00e8tres ou de la sortie du widget existant<\/h3>\n<p>Un filtre puissant \u00e0 utiliser pour jouer avec les widgets existants est <code>[dynamic_sidebar_params](https:\/\/developer.wordpress.org\/reference\/hooks\/dynamic_sidebar_params\/)<\/code>. Jetez un \u0153il \u00e0 la page de documentation pour voir quels param\u00e8tres vous pouvez modifier. Par exemple, vous pouvez ajouter des classes personnalis\u00e9es, vous pouvez modifier les cha\u00eenes <code>before_widget<\/code>, <code>after_widget<\/code>ou <code>before_title<\/code>et <code>after_title<\/code>HTML. Cependant, cela s&rsquo;applique \u00e0 tous les widgets, \u00e9galement admin et frontend. Et avec ce filtre, vous n&rsquo;avez pas acc\u00e8s \u00e0 l&rsquo;instance du widget (param\u00e8tres enregistr\u00e9s) ou aux param\u00e8tres du widget (par exemple, le type de widget).<\/p>\n<p>\u00c9videmment, nous devons au moins v\u00e9rifier nos param\u00e8tres personnalis\u00e9s. Nous devons donc faire pas mal de code pour r\u00e9cup\u00e9rer les valeurs dont nous avons besoin.<\/p>\n<p>La premi\u00e8re chose que nous pouvons faire est d&rsquo;acc\u00e9der \u00e0 une variable globale <code>$wp_registered_widgets<\/code>. Il s&rsquo;agit d&rsquo;un tableau qui contient tous les widgets enregistr\u00e9s et disponibles. En utilisant ce registre, nous pouvons utiliser le param\u00e8tre du filtre pour trouver le widget sp\u00e9cifique auquel nous nous trouvons actuellement. Une fois que nous avons trouv\u00e9 le widget actuel, nous avons acc\u00e8s aux param\u00e8tres du widget, tels que <code>id_base<\/code>&#8211; qui, comme nous l&rsquo;avons vu pr\u00e9c\u00e9demment, nous indique le type de widget.<\/p>\n<pre><code>add_filter('dynamic_sidebar_params', function($params) {\n    global $wp_registered_widgets;\n\u00a0\n    $this_widget_id = $params[0]['widget_id'];  \/\/ Current widget ID\n    $this_widget = $wp_registered_widgets[$this_widget_id];\n    $widget_object = $this_widget['callback'][0];  \/\/ Current widget object\n\u00a0\n    \/\/ With $widget_object we have access to e.g. id_base for checking type of widget\n    if ($widget_object-&gt;id_base != 'nav_menu') {\n        return $params;\n    }\n\u00a0\n    return $params;\n});<\/code><\/pre>\n<p>Comme vous pouvez le voir en ligne, <code>#9<\/code>nous pouvons enfin v\u00e9rifier \u00e0 quel type de widget nous sommes actuellement. Dans le code ci-dessus, je reviens si le type de widget n&rsquo;est pas un widget de navigation, car notre param\u00e8tre personnalis\u00e9 n&rsquo;a \u00e9t\u00e9 ajout\u00e9 que pour ces widgets.<\/p>\n<h3>R\u00e9cup\u00e9ration des param\u00e8tres de widget enregistr\u00e9s<\/h3>\n<p>Mais nous devons \u00e9galement r\u00e9cup\u00e9rer les param\u00e8tres enregistr\u00e9s par widget (y compris notre param\u00e8tre personnalis\u00e9). Tous les param\u00e8tres enregistr\u00e9s des widgets sont stock\u00e9s dans la base de donn\u00e9es d&rsquo;options regroup\u00e9s par type de widget. En utilisant une propri\u00e9t\u00e9 dans le registre des widgets, nous pouvons utiliser <code>[get_option](https:\/\/developer.wordpress.org\/reference\/functions\/get_option\/)()<\/code>pour r\u00e9cup\u00e9rer les param\u00e8tres enregistr\u00e9s pour le type de widget actuel. Le retour sera un tableau index\u00e9 o\u00f9 nous devons utiliser encore un autre param\u00e8tre du filtre pour trouver l&rsquo;index actuel (car vous pouvez ajouter plusieurs du m\u00eame type de widget dans la m\u00eame barre lat\u00e9rale ou dans des barres lat\u00e9rales diff\u00e9rentes). Il est plus facile de montrer avec du code que de l&rsquo;expliquer :<\/p>\n<pre><code>    ...\n    if ($widget_object-&gt;id_base != 'nav_menu') {\n        return $params;\n    }\n\u00a0\n    $all_settings = get_option($widget_object-&gt;option_name);\n    $saved_settings = $all_settings[$params[1]['number']];\n    if ($saved_settings['my-custom-thing']) {\n        \/\/ Do your thing\n    }\n\u00a0\n    return $params;\n});<\/code><\/pre>\n<p>Enfin, nous mettons la main sur les param\u00e8tres enregistr\u00e9s du widget\u00a0! Dans l&rsquo;exemple de code ci-dessus, \u00e0 la ligne <code>#9<\/code>, nous v\u00e9rifions si notre case \u00e0 cocher personnalis\u00e9e est coch\u00e9e ou non.<\/p>\n<h3>Exemples<\/h3>\n<p>\u00c0 ce stade, c&rsquo;est \u00e0 vous de d\u00e9cider ce que vous voulez faire. Vous pouvez par exemple afficher une sortie apr\u00e8s le titre du widget, mais avant le contenu du widget\u00a0:<\/p>\n<pre><code>    ...\n    if ($saved_settings['my-custom-thing']) {\n        $params[0]['after_title'] .= '&lt;div&gt;This appears before widget content&lt;\/div&gt;';\n    }\n    ...<\/code><\/pre>\n<p>Pour des cas d&rsquo;utilisation plus r\u00e9els, vous r\u00e9soudrez normalement la plupart en ajoutant certains filtres \u00e0 ce stade, en appelant <code>add_filter()<\/code>\u00e0 ce stade.<\/p>\n<p>Vous trouverez ci-dessous un exemple de modification des arguments du menu Navigation en ajoutant un filtre si notre param\u00e8tre a \u00e9t\u00e9 coch\u00e9. S&rsquo;il n&rsquo;\u00e9tait pas coch\u00e9, nous nous assurons que le filtre est supprim\u00e9. Le filtre de modification des arguments de rendu d&rsquo;un menu de navigation est <code>widget_nav_menu_args<\/code>. Dans le code ci-dessous, j&rsquo;ai d\u00e9fini une fonction \u00e0 appliquer \u00e0 ce filtre qui ajoute un nouvel argument aux arguments du menu\u00a0; un promeneur :<\/p>\n<pre><code>    ...\n    if ($saved_settings['my-custom-thing']) {\n        add_filter('widget_nav_menu_args', 'awp_add_menu_walker', 10, 3);\n    } else {\n        remove_filter('widget_nav_menu_args', 'awp_add_menu_walker', 10);\n    }\n    return $params;\n});\nfunction awp_add_menu_walker($nav_menu_args, $nav_menu, $args) {\n    $nav_menu_args['walker'] = new AWP_Custom_Walker();\n    return $nav_menu_args;\n}<\/code><\/pre>\n<p>Le code ci-dessus est un exemple de cas d&rsquo;utilisation o\u00f9 la case \u00e0 cocher personnalis\u00e9e contr\u00f4le s&rsquo;il faut ou non appliquer un menu walker au menu. Excellent si vous souhaitez que tous les menus s&rsquo;affichent normalement, mais souhaitez que l&rsquo;option pour que des widgets de menu sp\u00e9cifiques s&rsquo;affichent diff\u00e9remment. Ce que le marcheur fait avec la sortie du menu d\u00e9pend de vous.<\/p>\n<p>Voir ci-dessous le code complet permettant d&rsquo;ajouter un param\u00e8tre personnalis\u00e9 \u00e0 tous les menus de navigation, de le mettre \u00e0 jour et d&rsquo;appliquer un explorateur de menu.<\/p>\n<p>J&rsquo;esp\u00e8re que cela vous suffira pour comprendre comment coder ce que vous voulez faire. Cela d\u00e9pend vraiment de ce que vous voulez faire et du type de widget avec lequel vous travaillez. Comme mentionn\u00e9 ci-dessus, la plupart des modifications peuvent g\u00e9n\u00e9ralement \u00eatre r\u00e9solues en ajoutant des filtres pour faire votre travail dans <code>dynamic_sidebar_params<\/code>.<\/p>\n<h2>Exemple complet\u00a0: param\u00e8tre de case \u00e0 cocher personnalis\u00e9 sur les widgets de navigation pour l&rsquo;application d&rsquo;un explorateur de menu<\/h2>\n<p>Voici le code complet pour ajouter une case \u00e0 cocher personnalis\u00e9e \u00e0 tous les widgets de menu de navigation de WordPress pour utiliser un menu walker enregistr\u00e9. (Code marcheur non inclus)<\/p>\n<pre><code>\/\/ Add custom setting to menu widgets\nadd_action('in_widget_form', function($widget, $return, $instance) {\n    \/\/ Add setting only to menu widgets\n    if ($widget-&gt;id_base != 'nav_menu') {\n        return;\n    }\n\u00a0\n    ?&gt;\n    &lt;p&gt;\n        &lt;input type=\"checkbox\" class=\"checkbox\" name=\"&lt;?php echo $widget-&gt;get_field_name('activate-walker'); ?&gt;\" id=\"&lt;?php echo $widget-&gt;get_field_name('activate-walker'); ?&gt;\" &lt;?php checked(isset($instance['activate-walker'])? $instance['activate-walker']: 0); ?&gt; \/&gt;\n        &lt;label for=\"&lt;?php echo $widget-&gt;get_field_name('activate-walker'); ?&gt;\"&gt;&lt;?php __('Activate walker', 'txtdomain'); ?&gt;&lt;\/label&gt;\n    &lt;\/p&gt;\n    &lt;?php\n}, 10, 3);\n\u00a0\n\u00a0\n\/\/ Update custom setting\nadd_filter('widget_update_callback', function($instance, $new_instance, $old_instance) {\n    $instance['activate-walker'] = isset($new_instance['activate-walker']);\n    return $instance;\n}, 10, 3);\n\u00a0\n\u00a0\n\/\/ Filter sidebar params to add filter if custom setting was activated\nadd_filter('dynamic_sidebar_params', function($params) {\n    global $wp_registered_widgets;\n\u00a0\n    $this_widget_id = $params[0]['widget_id'];\n    $this_widget = $wp_registered_widgets[$this_widget_id];\n    $widget_object = $this_widget['callback'][0];\n\u00a0\n    \/\/ Bail if not a menu widget\n    if ($widget_object-&gt;id_base != 'nav_menu') {\n        return $params;\n    }\n\u00a0\n    $all_settings = get_option($widget_object-&gt;option_name);\n    $saved_settings = $all_settings[$params[1]['number']];\n\u00a0\n    if ($saved_settings['activate-walker']) {\n        add_filter('widget_nav_menu_args', 'awp_add_menu_walker', 10, 3);\n    } else {\n        remove_filter('widget_nav_menu_args', 'awp_add_menu_walker', 10);\n    }\n\u00a0\n    return $params;\n});\n\u00a0\n\u00a0\n\/\/ Filter nav menu arguments to add walker\nfunction awp_add_menu_walker($nav_menu_args, $nav_menu, $args) {\n    $nav_menu_args['walker'] = new AWP_Custom_Walker();\n    return $nav_menu_args;\n}<\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>J&rsquo;esp\u00e8re que ce message a \u00e9t\u00e9 utile pour r\u00e9soudre vos besoins ou vous donner des indications sur la fa\u00e7on dont vous pouvez faire ce que vous devez faire\u00a0!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comment ajouter des param\u00e8tres personnalis\u00e9s \u00e0 l&rsquo;un des widgets standard de WordPress. Avec ces param\u00e8tres, nous apprendrons \u00e0 manipuler le comportement des widgets en cons\u00e9quence.<\/p>\n","protected":false},"author":1,"featured_media":223663,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,893,717,717,832,1110,801,801,832,925,925,841,841,862,862],"tags":[1167],"class_list":["post-234220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-n-a","category-php-3","category-sujets","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234220","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=234220"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234220\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/223663"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}