<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="https://chierchia.fr/wp-content/plugins/pretty-rss-feeds/xslt/pretty-feed.xsl" type="text/xsl" media="screen" ?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wordpress - Ange Chierchia</title>
	<atom:link href="https://chierchia.fr/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>https://chierchia.fr/tag/wordpress/</link>
	<description>Développeur Web full-stack</description>
	<lastBuildDate>Sun, 08 Feb 2026 15:44:44 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://chierchia.fr/wp-content/uploads/cropped-16350293-SSDKVqo3-32x32.jpg</url>
	<title>wordpress - Ange Chierchia</title>
	<link>https://chierchia.fr/tag/wordpress/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
					<title>Windsurf et moi : journal d’un dev qui apprend à parler à une IA</title>
					<link>https://chierchia.fr/2026/02/windsurf-et-moi-journal-dun-dev-qui-apprend-a-parler-a-une-ia/</link>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Mon, 02 Feb 2026 06:45:00 +0000</pubDate>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Gutenberg]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[JSX]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[vibe coding]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=7980</guid>

					<description><![CDATA[Ça fait deux semaines que j&#8217;utilise Windsurf pour développer un plugin WordPress.Le principe ? Ajouter des options sur les blocs Gutenberg natifs (en React/JSX), et gérer des Custom Post Types proprement. Rien de dingue sur le papier.Mais en vrai, c&#8217;est le genre de projet où tu te retrouves vite avec du code front mélangé au [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<p>Ça fait deux semaines que j&rsquo;utilise <strong>Windsurf</strong> pour développer un plugin WordPress.<br>Le principe ? Ajouter des options sur les blocs Gutenberg natifs (en React/JSX), et gérer des Custom Post Types proprement.</p>



<p>Rien de dingue sur le papier.<br />Mais en vrai, c&rsquo;est le genre de projet où tu te retrouves vite avec du code front mélangé au code métier, des fichiers qui grossissent, et un moment où tu te demandes « mais pourquoi j&rsquo;ai foutu ça là ? ».</p>



<p>Avant, j&rsquo;aurais passé une journée entière à refactoriser pour que ce soit propre.<br />Là, j&rsquo;ai tenté de faire équipe avec l&rsquo;IA.</p>



<p>Spoiler : c&rsquo;est ni parfait, ni magique. Mais franchement, c&rsquo;est troublant.</p>



<h2 class="wp-block-heading">Le moment où j&rsquo;ai compris que c&rsquo;était différent</h2>



<p>Au début, je lui ai juste balancé :</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>« J&rsquo;ai du code pour étendre des blocs Gutenberg. Aide-moi à séparer proprement le front-end de la logique métier. »</p>
</blockquote>



<p>Windsurf ne m&rsquo;a pas juste craché trois suggestions de fonctions.<br />Il a <strong>réorganisé des fichiers</strong>.<br />Il a créé des dossiers, proposé une archi, déplacé du code React d&rsquo;un côté, les enregistrements de CPT de l&rsquo;autre.</p>



<p>Pas parfait, hein. Mais cohérent.</p>



<p>Et moi, pendant ce temps, je ne codais presque pas.<br />Je lisais, je validais, je virais ce qui ne me plaisait pas.</p>



<p>C&rsquo;est là que j&rsquo;ai senti le truc : je n&rsquo;étais plus vraiment en train de « coder ».<br />J&rsquo;étais en train de <strong>piloter</strong>.</p>



<h2 class="wp-block-heading">Font Awesome sur les boutons : ou comment j&rsquo;ai réécrit mes prompts 15 fois</h2>



<p>Le truc qui m&rsquo;a le plus pris la tête, c&rsquo;est l&rsquo;ajout d&rsquo;<strong>icônes Font Awesome sur les blocs <code>core/button</code></strong>.</p>



<p>Sur le papier, c&rsquo;est simple :<br />tu rajoutes un control dans le panneau Gutenberg, tu laisses l&rsquo;utilisateur choisir une icône, tu l&rsquo;affiches côté front avec la bonne classe Font Awesome.</p>



<p>Dans la réalité ?<br />Windsurf m&rsquo;a sorti :</p>



<ul class="wp-block-list">
<li>Des contrôles Gutenberg qui ne compilaient pas.</li>



<li>Des attributs qui disparaissaient au save/reload.</li>



<li>Du JSX bancal avec des icônes qui se dupliquaient ou qui partaient dans le mauvais sens.</li>



<li>Une fois, il m&rsquo;a même proposé d&rsquo;importer <strong>tout Font Awesome en JS côté éditeur</strong> (merci, mais non).</li>
</ul>



<p>Le problème, c&rsquo;est que je lui demandais des trucs trop vagues.<br />Genre :</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>« Ajoute une option pour choisir une icône Font Awesome. »</p>
</blockquote>



<p>Résultat : il partait dans tous les sens.</p>



<p>J&rsquo;ai dû affiner. Beaucoup.<br />Jusqu&rsquo;à arriver à des prompts du style :</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>« Ajoute un SelectControl dans InspectorControls pour choisir parmi 5 icônes Font Awesome.<br />L&rsquo;attribut doit s&rsquo;appeler <code>faIcon</code>, de type string.<br />L&rsquo;icône doit s&rsquo;afficher avant le texte du bouton, côté front uniquement, avec la classe <code>fa-solid fa-{nomIcone}</code>. »</p>
</blockquote>



<p>Là, ça commençait à tourner.</p>



<p>Mais j&rsquo;ai quand même dû <strong>tout recommencer à zéro</strong> une fois, parce qu&rsquo;il m&rsquo;avait généré une logique tellement tordue que je ne m&rsquo;y retrouvais plus.</p>



<h2 class="wp-block-heading">Ce que j&rsquo;ai appris : parler à une IA, c&rsquo;est un métier</h2>



<p>Ce qui m&rsquo;a le plus marqué, c&rsquo;est à quel point <strong>la façon dont tu poses la question change tout</strong>.</p>



<p>Si tu dis :<br />« Fais-moi un truc pour gérer des icônes »,<br />tu obtiens du code générique, verbeux, à moitié cassé.</p>



<p>Si tu dis :<br />« Crée un attribut <code>faIcon</code> de type string, ajoute un SelectControl avec 5 options fixes, affiche l&rsquo;icône en <code>&lt;i&gt;</code> avec la classe correspondante dans le RichText »,<br />là, ça roule.</p>



<p>Et ça, pour moi, c&rsquo;est nouveau.<br />Avant, coder, c&rsquo;était : je sais ce que je veux, je le tape.<br />Maintenant, c&rsquo;est : je sais ce que je veux, <strong>j&rsquo;apprends à le formuler pour qu&rsquo;une IA le fasse</strong>.</p>



<p>C&rsquo;est presque un exercice de specs en temps réel.<br />Et franchement, ça m&rsquo;a forcé à être plus <strong>clair dans ma tête</strong> sur ce que je voulais vraiment.</p>



<h2 class="wp-block-heading">La structure du plugin : là où l&rsquo;IA m&rsquo;a vraiment aidé</h2>



<p>Ce qui est cool, c&rsquo;est que Windsurf m&rsquo;a aidé à mettre en place une archi propre dès le début.</p>



<p>Avant, j&rsquo;aurais fait un gros <code>index.php</code>, un dossier <code>assets</code>, et je me serais dit « je rangerai plus tard ».<br />Jamais fait, évidemment.</p>



<p>Là, il m&rsquo;a proposé direct :</p>



<ul class="wp-block-list">
<li>Un dossier <code>src/blocks</code> pour tout le code React/JSX qui étend les blocs Gutenberg.</li>



<li>Un dossier <code>includes</code> pour les CPT et la logique métier.</li>



<li>Un build propre avec webpack (enfin… plus ou moins propre, j&rsquo;ai dû ajuster).</li>



<li>Une séparation claire entre ce qui tourne côté éditeur et ce qui se charge côté front.</li>
</ul>



<p>C&rsquo;est pas révolutionnaire.<br />Mais c&rsquo;est exactement ce que j&rsquo;aurais dû faire depuis le début, et que je faisais jamais par flemme.</p>



<p>L&rsquo;IA m&rsquo;a forcé à être <strong>structuré dès le départ</strong>, parce qu&rsquo;elle avait besoin de comprendre où mettre les fichiers.</p>



<p>Et résultat : mon code est plus maintenable. Plus facile à relire. Moins bordélique.</p>



<h2 class="wp-block-heading">Les moments de frustration (parce qu&rsquo;il y en a)</h2>



<p>Je ne vais pas mentir : il y a eu des phases où j&rsquo;ai eu envie de tout fermer et de retourner coder comme avant.</p>



<p>Genre :</p>



<ul class="wp-block-list">
<li>Quand l&rsquo;IA me modifiait 4 fichiers alors que je lui avais demandé d&rsquo;en toucher qu&rsquo;un.</li>



<li>Quand elle « corrigeait » du JSX qui marchait très bien, merci.</li>



<li>Quand elle m&rsquo;inventait des hooks React qui n&rsquo;existent pas, et que je perdais 20 minutes à comprendre pourquoi ça plantait.</li>
</ul>



<p>Il y a aussi ce moment bizarre où tu te rends compte que <strong>tu lis plus de code que tu n&rsquo;en écris</strong>.<br />Et parfois, ça frustre.<br />Parce que coder, c&rsquo;est pas juste produire du code. C&rsquo;est aussi réfléchir, tâtonner, trouver des solutions.</p>



<p>Avec l&rsquo;IA, tu sautes une partie de ce process.<br />Des fois c&rsquo;est génial.<br />Des fois, tu te sens un peu… spectateur.</p>



<h2 class="wp-block-heading">Ce que je retiens après deux semaines</h2>



<p><strong>Windsurf, c&rsquo;est un outil de structure avant tout.</strong><br />Il te force à penser ton projet proprement, parce qu&rsquo;il a besoin de comprendre où il met les pieds.</p>



<p><strong>C&rsquo;est aussi un amplificateur de clarté mentale.</strong><br />Si tu ne sais pas vraiment ce que tu veux, il va partir en vrille.<br />Si tu es clair, il va vite.</p>



<p><strong>Mais ça reste un assistant, pas un dev.</strong><br />Tu ne peux pas lui laisser la main sur tout.<br />Surtout si tu fais du React/JSX un peu poussé, ou si tu touches à des trucs sensibles (attributs Gutenberg, save/edit, etc.).</p>



<p>Le truc à retenir ?<br /><strong>L&rsquo;IA produit le squelette. Toi, tu mets la chair.</strong></p>



<p>Et franchement, pour l&rsquo;instant, ça me va bien comme ça.</p>



<h2 class="wp-block-heading">Et toi, t&rsquo;en es où ?</h2>



<p>Je suis curieux de savoir si d&rsquo;autres devs WordPress ont testé ce genre d&rsquo;outils sur des projets Gutenberg.<br />Parce que franchement, entre le JSX, les attributs, le <code>save</code> vs <code>edit</code>, et tout le bordel de la compilation&#8230; c&rsquo;est pas toujours évident de savoir ce qu&rsquo;on peut déléguer à l&rsquo;IA et ce qu&rsquo;il vaut mieux garder sous contrôle.</p>



<p>Si t&rsquo;as des retours d&rsquo;expérience, des prompts qui marchent bien (ou qui partent complètement en couille), ou juste une opinion tranchée sur le fait de coder avec une IA, balance-moi ça.</p>



<p>Parce qu&rsquo;au fond, on est tous un peu en train d&rsquo;apprendre ensemble comment bosser avec ces trucs-là.<br />Et autant partager les galères, non ?</p>
</div>]]></content:encoded>
					
		
		
			</item>
		<item>
					<title>dimanche 17 novembre 2024 @ 13:00:25</title>
					<link>https://chierchia.fr/2024/11/dimanche-17-novembre-2024-130025/</link>
					<comments>https://chierchia.fr/2024/11/dimanche-17-novembre-2024-130025/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Sun, 17 Nov 2024 12:00:25 +0000</pubDate>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=3562</guid>

					<description><![CDATA[Je viens de modifier mon script dans le functions.php de mon thème WordPress pour utiliser automatiquement la date et l&#8217;heure du jour, pour mes notes auxquelles je ne donne pas de titre, plutôt qu&#8217;un morceau du contenu. Si jamais ça vous intéresse, voilà comment j&#8217;ai fait. C&#8217;est très basique :]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<div class="wp-block-indieblocks-reply"><div class="u-in-reply-to h-cite"><p><i>In reply to <a class="u-url" href="https://chierchia.fr/2024/03/generer-automatiquement-le-titre-dun-post-dans-wordpress/">https://chierchia.fr/2024/03/generer-automatiquement-le-titre-dun-post-dans-wordpress/</a>.</i></p></div><div class="e-content">
<p>Je viens de modifier mon script dans le <code>functions.php</code> de mon thème WordPress pour utiliser automatiquement la date et l&rsquo;heure du jour, pour mes notes auxquelles je ne donne pas de titre, plutôt qu&rsquo;un morceau du contenu.<br></p>



<p>Si jamais ça vous intéresse, voilà comment j&rsquo;ai fait. C&rsquo;est très basique :</p>



<pre class="wp-block-code"><code>add_filter( 'wp_insert_post_data' , 'generate_post_title' , '99', 1 ); 
function generate_post_title($data) {
  if(empty($data&#91;'post_title'])) {

    $date = $data&#91;'post_date'];
    $timestamp = strtotime($date);
    $data&#91;'post_title'] = date_i18n('l d F Y @ H:i:s', $timestamp);
    
  }
  return $data; // Returns the modified data.
}</code></pre>
</div></div>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2024/11/dimanche-17-novembre-2024-130025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>Fatigue</title>
					<link>https://chierchia.fr/2024/10/fatigue/</link>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Sat, 12 Oct 2024 10:36:01 +0000</pubDate>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[jekyll]]></category>
		<category><![CDATA[personnel]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=3222</guid>

					<description><![CDATA[Je n’en peux plus de mon blog dans son état actuel. Quand je suis repassé sous WordPress, je me suis empressé d’installer un thème et des plugins me permettant de garder à peut prêt les mêmes fonctionnalités «&#160;IndieWeb&#160;» que j’avais réussi à mettre en place sur mon installation Jekyll. À peu prêt 6 mois plus [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<p>Je n’en peux plus de mon blog dans son état actuel. </p>



<p>Quand je suis repassé sous WordPress, je me suis empressé d’installer un thème et des plugins me permettant de garder à peut prêt les mêmes fonctionnalités «&nbsp;IndieWeb&nbsp;» que j’avais réussi à mettre en place sur mon installation Jekyll.</p>



<p>À peu prêt 6 mois plus tard, j’en viens à penser qu’installer le plugin Post Kinds, qui ne supporte toujours pas les blocs de contenus de Gutenberg, l’éditeur actuel de WordPress, était en fait le mauvais move.</p>



<p>J’aime ce que je publie sur mon blog, je suis à l’aise avec le fait qu’il y ait beaucoup plus de contenus relatifs à ma vie personnelle que d’articles à propos de développement Web, mais je trouve que tout ce que j’avais mis en place pour «&nbsp;faire partie de l’IndieWeb&nbsp;», au final c’est du gros bullshit.</p>



<p>J’ai envie de revenir à l’essentiel. Un WordPress «&nbsp;basique&nbsp;», sans plugins qui modifient la façon dont Automattic et Matt Mullenweg ont pensé la rédaction de contenus. J’ai adoré l’époque où WordPress était «&nbsp;concurrencé&nbsp;» par Tumblr, ça a permis l’arrivée de ce qui pour moi a toujours était une fonctionnalité géniale : les formats d’articles. </p>



<p>Mon erreur, lorsque je suis repassé sur WordPress, ça a été de me précipiter. Alors oui, ça m’a permis de bloguer plus facilement et plus souvent, j’en suis ravi. Mais le fait est que le thème SemPress que j’utilisai, avant de changer pour Twenty Twenty-Four ces dernières semaines, faisait le taff même si visuellement il n’est pas top.</p>



<p>Je pense qu’il est grand temps pour moi créer un thème WordPress par moi même, plutôt que de me reposer sur un thème qui ne répond plus à mon besoin ou de perdre du temps à en chercher un qui me convienne.</p>



<p>Twenty Twenty-Four n’est pas idéal, mais ça reste un thème plutôt propre et peut-être une bonne base pour commencer mon propre thème <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f937-1f3fb-200d-2642-fe0f.png" alt="🤷🏻‍♂️" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>On se quitte là dessus pour aujourd’hui <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f44b.png" alt="👋" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
</div>]]></content:encoded>
					
		
		
			</item>
		<item>
					<title>Je viens de supprimer les catégories sur mon blog.</title>
					<link>https://chierchia.fr/2024/04/je-viens-de-supprimer-les-categories-sur-mon-blog/</link>
					<comments>https://chierchia.fr/2024/04/je-viens-de-supprimer-les-categories-sur-mon-blog/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Sun, 07 Apr 2024 08:49:48 +0000</pubDate>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[personnel]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/blog/2024/04/je-viens-de-supprimer-les-categories-sur-mon-blog</guid>

					<description><![CDATA[Je viens de supprimer les catégories sur mon blog. Il ne me restera plus qu’à modifier le thème SemPess pour ne plus afficher la catégorie «&#160;Non classé&#160;» sur tous mes billets.]]></description>
										<content:encoded><![CDATA[<div class='e-content'>Je viens de supprimer les catégories sur mon blog. Il ne me restera plus qu’à modifier le thème SemPess pour ne plus afficher la catégorie «&nbsp;Non classé&nbsp;» sur tous mes billets.</div>
]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2024/04/je-viens-de-supprimer-les-categories-sur-mon-blog/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>Je viens d’installer les plugins ActivityPub et Enable Mastodon App&#8230;</title>
					<link>https://chierchia.fr/2024/03/je-viens-dinstaller-les-plugins-activitypub-et-enable-mastodon-app/</link>
					<comments>https://chierchia.fr/2024/03/je-viens-dinstaller-les-plugins-activitypub-et-enable-mastodon-app/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Sun, 31 Mar 2024 10:50:55 +0000</pubDate>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[personnel]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/blog/2024/03/je-viens-dinstaller-les-plugins-activitypub-et-enable-mastodon-app</guid>

					<description><![CDATA[Je viens d’installer les plugins ActivityPub et Enable Mastodon App sur mon blog, on verra ce que ça fait. Si ça me permet d’avoir un semblant de « serveur Mastodon », je quitterai l’instance mastodon.social]]></description>
										<content:encoded><![CDATA[<div class='e-content'>Je viens d’installer les plugins ActivityPub et Enable Mastodon App sur mon blog, on verra ce que ça fait. Si ça me permet d’avoir un semblant de « serveur Mastodon », je quitterai l’instance mastodon.social</div>
]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2024/03/je-viens-dinstaller-les-plugins-activitypub-et-enable-mastodon-app/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>Générer automatiquement le titre d&#8217;un post dans WordPress</title>
					<link>https://chierchia.fr/2024/03/generer-automatiquement-le-titre-dun-post-dans-wordpress/</link>
					<comments>https://chierchia.fr/2024/03/generer-automatiquement-le-titre-dun-post-dans-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Sat, 16 Mar 2024 17:16:18 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[back-end]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=2519</guid>

					<description><![CDATA[Suite à tous mes posts de ce matin, j&#8217;ai cherché une façon de générer un titre à mes notes, que je publie généralement via la Web app quill.p3k.io développée par Aaron Pareki. Il existe de nombreux filtres pour agir sur le contenu d&#8217;un post ou d&#8217;une page, mais la plupart sont exécutés à l&#8217;affichage comme [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<p>Suite à tous mes posts de ce matin, j&rsquo;ai cherché une façon de générer un titre à mes notes, que je publie généralement via la Web app <a href="https://quill.p3k.io">quill.p3k.io</a> développée par <a href="https://aaronparecki.com/">Aaron Pareki</a>.</p>



<span id="more-2519"></span>



<p>Il existe de nombreux filtres pour agir sur le contenu d&rsquo;un post ou d&rsquo;une page, mais la plupart sont exécutés à l&rsquo;affichage comme <code>the_title</code> ou <code>the_content</code>, ou encore à la modification comme le filtre <code>save_post</code>.</p>



<p>On pourrait très bien générer notre titre après l&rsquo;enregistrement dans la base de données, mais dans mon cas je souhaitais définir le titre et le permalien avant, simplement pour éviter que le partage sur Mastodon se fasse sans titre défini dans les metadonnées utilisées par OpenGraph.</p>



<p>Heureusement, il existe un filtre sur lequel agir pour ça : <code>wp_insert_post_data</code>.</p>



<p>Voici comment j&rsquo;ai reussi :</p>



<pre class="wp-block-code"><code>function generate_post_title($data)
{
    if (empty($data&#91;'post_title'])) {

        $content = $data&#91;'post_content'];

        $pieces = explode(" ", $content);
        $first_part = implode(" ", array_splice($pieces, 0, 5));

        $data&#91;'post_title'] = $first_part; // Defines post title
        $data&#91;'post_name'] = sanitize_title($first_part); // Defines post slug
    }
    return $data; // Returns the modified data.
}
add_filter('wp_insert_post_data', 'generate_post_title', '99', 1);</code></pre>



<p>Je pourrais toujours l&rsquo;améliorer par la suite, par exemple :</p>



<ul class="wp-block-list">
<li>en prenant la première phrase de mon contenu, plutôt que les cinq premiers mots actuellement,</li>



<li>en ajoutant des points de suspensions lorsque la première phrase dépasse les six mots.</li>
</ul>



<p>J&rsquo;espère que ce petit morceau de code vous aidera.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f44b.png" alt="👋" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2024/03/generer-automatiquement-le-titre-dun-post-dans-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>J’ai désactivé le plugin Jetpack</title>
					<link>https://chierchia.fr/2024/03/ok-je-crois-que-je-viens-de-comprendre/</link>
					<comments>https://chierchia.fr/2024/03/ok-je-crois-que-je-viens-de-comprendre/#comments</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Sat, 16 Mar 2024 08:12:45 +0000</pubDate>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[personnel]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/blog/2024/03/ok-je-crois-que-je-viens-de-comprendre</guid>

					<description><![CDATA[Ok, je crois que je viens de comprendre d’où vient le problème. J’ai désactivé le plugin Jetpack, on verra ce que ça donne.]]></description>
										<content:encoded><![CDATA[<div class='e-content'>Ok, je crois que je viens de comprendre d’où vient le problème. J’ai désactivé le plugin Jetpack, on verra ce que ça donne.</div>
]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2024/03/ok-je-crois-que-je-viens-de-comprendre/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
					<title>Optimisez vos publications WordPress avec Post Kinds!</title>
					<link>https://chierchia.fr/2024/03/optimisez-vos-publications-wordpress-avec-post-kinds/</link>
					<comments>https://chierchia.fr/2024/03/optimisez-vos-publications-wordpress-avec-post-kinds/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Wed, 06 Mar 2024 13:36:28 +0000</pubDate>
				<category><![CDATA[Bookmarks]]></category>
		<category><![CDATA[Notes]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[utile]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=1592</guid>

					<description><![CDATA[Je viens de tomber sur cet article de Chris Aldrich dans lequel il explique comment accélérer le processus de publication grâce au plugin WordPress Post Kinds et ses URLs du style http://example.com/wp-admin/post-new.php?kind=bookmark&#38;kindurl=@url]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<div class="wp-block-indieblocks-bookmark"><div class="u-bookmark-of h-cite"><p><i>Bookmarked <a class="u-url p-name" href="https://boffosocko.com/2017/01/10/browser-bookmarklets-and-mobile-sharing-with-post-kinds-plugin-for-wordpress/">Browser Bookmarklets and Mobile Sharing with Post Kinds Plugin for WordPress</a> by <span class="p-author">Chris Aldrich</span>.</i></p></div><div class="e-content">
<p>Je viens de tomber sur cet article de Chris Aldrich dans lequel il explique comment accélérer le processus de publication grâce au plugin WordPress Post Kinds et ses URLs du style <code>http://example.com/wp-admin/post-new.php?kind=bookmark&amp;kindurl=@url</code></p>
</div></div>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2024/03/optimisez-vos-publications-wordpress-avec-post-kinds/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>Récupérer la valeur d&#8217;un champ personnalisé dans WordPress hors de la Boucle</title>
					<link>https://chierchia.fr/2009/09/wordpress-custom-field-hors-de-la-loop/</link>
					<comments>https://chierchia.fr/2009/09/wordpress-custom-field-hors-de-la-loop/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Wed, 02 Sep 2009 20:26:46 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[back-end]]></category>
		<category><![CDATA[custom fields]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://nighcrawl.com/blog/2009/09/wordpress-custom-field-hors-de-la-loop</guid>

					<description><![CDATA[Aujourd’hui je vais vous faire partager une petite astuce que j’ai dut utiliser pour l’un de mes projets en cours. La problématique : Comment afficher un custom field lorsqu’on est hors de la loop wordpress? Il y a quelques jours, je travaillais sur l’intégration d’un design dans le système de blog WordPress, plateforme que j’utilise [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>Aujourd’hui je vais vous faire partager une petite astuce que j’ai dut utiliser pour l’un de mes projets en cours. La problématique : Comment afficher un custom field lorsqu’on est hors de la loop wordpress?<span id="more-1411"></span></p>
<p>Il y a quelques jours, je travaillais sur l’intégration d’un design dans le système de blog WordPress, plateforme que j’utilise notamment ici. Dans ma charte graphique, chaque élément du menu de navigation est suivi d’une petite phrase expliquant ce que l’on trouvera dans la page lié. J’avais décidé d’enregistrer ces phrases dans un champ personnalisé pour pouvoir l’afficher très simplement et rapidement avec l’une des fonctions qu’intègre WordPress comme wp_page_menu() ou wp_list_page().</p>
<p>Malheureusement, comme me l’a confirmé mon ami @clawfire, ces deux fonctions n’entrent pas dans ce qu’on appelle la Boucle ou Loop dans le jargon WP, il me fallait donc coder moi même l’affichage du menu intégrant ce champ personnalisé. Voilà la marche à suivre</p>
<h2 id="sur-quelles-tables-de-la-base-de-données-doit-on-travailler">Sur quelles tables de la base de données doit on travailler?</h2>
<p>D’abord il faut savoir dans quelles tables sont enregistrés les données qui nous intéresses.  On remarquera que WordPress enregistre les données d’un article dans la table wp_posts, et la table wp_postmeta enregistre d’autres informations moins primordiales comme par exemple quel modèle de page utilise l’article, ET les différents champs personnalisés attachés à l’article.</p>
<h2 id="au-boulot">Au boulot!</h2>
<p>Maintenant qu’on sait sur quoi faire notre requête SQL, il est temps de passer à la programmation!</p>
<pre class="brush:php">try{

$db = new PDO('mysql:dbname=database;host=localhost','root','pass');

} catch(PDOException $e){

echo "connexion echoué : ".$e-&gt;getMessage();

}

//on récupère l'ID de la page statique qui sert de page d'accueil du site

$strHomepage = "SELECT option_value FROM wp_options WHERE option_name = 'page_on_front'";

$stmt = $db-&gt;prepare($strHomepage);

$stmt-&gt;execute();

$home_id = $stmt-&gt;fetch(PDO::FETCH_OBJ)-&gt;option_value;

//on récupère la valeur de l'option siteurl

$strHomeUrl = "SELECT option_value FROM wp_options WHERE option_name = 'siteurl'";

$stmt = $db-&gt;prepare($strHomeUrl);

$stmt-&gt;execute();

$home_url = $stmt-&gt;fetch(PDO::FETCH_OBJ)-&gt;option_value;

//on récupère les infos neccessaires à l'affichage du menu avec la taglines

$strTagline = "SELECT * FROM wp_posts p, wp_postmeta m WHERE p.ID = m.post_id

AND meta_key = 'nav_tagline' AND post_parent = 0

AND post_type ='page' AND post_status = 'publish'

ORDER BY menu_order ASC";

//echo $home_id;

$stmt = $db-&gt;prepare($strTagline);

$stmt-&gt;execute();

echo "&lt;ul&gt;";

while($r = $stmt-&gt;fetch()){

if($r['ID'] == $home_id){

} else {

echo "&lt;li&gt;&lt;a href='".$home_url."/?page_id=".$r['ID']."'&gt;".$r['post_title']."&lt;span&gt;".$r['meta_value']."&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;";

}

}

echo "&lt;ul&gt;";</pre>
<p>Et voilà, notre menu avec un custom field est terminé!</p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2009/09/wordpress-custom-field-hors-de-la-loop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
