{"id":33145,"date":"2019-10-23T00:36:44","date_gmt":"2019-10-23T07:36:44","guid":{"rendered":"https:\/\/kinqsta.com\/?p=54548"},"modified":"2023-08-22T11:56:43","modified_gmt":"2023-08-22T10:56:43","slug":"wordpress-get_posts","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/","title":{"rendered":"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles"},"content":{"rendered":"<p>WordPress <code>get_posts<\/code> est une fonction puissante permettant aux <a href=\"https:\/\/kinqsta.com\/fr\/blog\/engager-developpeur-wordpress\/\">d\u00e9veloppeurs<\/a> de r\u00e9cup\u00e9rer des \u00e9l\u00e9ments de contenu depuis la <a href=\"https:\/\/kinqsta.com\/fr\/blog\/bases-de-donnees-wordpress\/\">base de donn\u00e9es WordPress<\/a>. Vous pouvez sp\u00e9cifier dans les moindres d\u00e9tails quels articles, pages et <a href=\"https:\/\/kinqsta.com\/fr\/blog\/types-publications-personnalises-wordpress\/\">les types de publications personnalis\u00e9s<\/a> que vous recherchez, obtenir votre ensemble de r\u00e9sultats personnalis\u00e9s, puis filtrer et trier les \u00e9l\u00e9ments comme un ninja PHP\/MySQL.<\/p>\n<p>Mais n&rsquo;ayez pas peur si vous n&rsquo;\u00eates pas un professionnel de PHP, il existe d&rsquo;innombrables <a href=\"https:\/\/kinqsta.com\/fr\/blog\/tutoriels-php\/\">tutoriels PHP que vous pouvez regarder<\/a> ou lire et apprendre ce langage.<\/p>\n<p>Vous avez juste besoin d&rsquo;un peu <a href=\"https:\/\/kinqsta.com\/fr\/blog\/php-est-il-mort\/\">connaissance en PHP<\/a> pour cr\u00e9er des listes personnalis\u00e9es d\u2019articles \u00e0 afficher sur votre site car la fonction <code>get_posts<\/code> conserve un ensemble de param\u00e8tres permettant de construire des requ\u00eates simples ou avanc\u00e9es.<\/p>\n<p>Utiliser WordPress <code>get_posts<\/code> est un processus en deux \u00e9tapes :<\/p>\n<ul>\n<li>Tout d&rsquo;abord, vous devez construire votre requ\u00eate personnalis\u00e9e. En fait, cela ne ressemblera pas \u00e0 une requ\u00eate MySQL, et vous n&rsquo;\u00e9crirez aucune instruction <code>SELECT<\/code>. Il vous suffit de d\u00e9finir un tableau de param\u00e8tres et de le passer \u00e0 la fonction <code>get_posts<\/code>. WordPress convertit ce tableau en une requ\u00eate MySQL r\u00e9elle et <strong>s\u00e9curis\u00e9e<\/strong>, l&rsquo;ex\u00e9cute contre la base de donn\u00e9es et retourne un tableau d\u2019articles.<\/li>\n<li>Ensuite, vous devez parcourir l&rsquo;ensemble des r\u00e9sultats retourn\u00e9s par <code>get_posts<\/code> avec un cycle foreach.<\/li>\n<\/ul>\n<p>Cela dit, dans cet article, nous allons d&rsquo;abord nous plonger dans les concepts cl\u00e9s mentionn\u00e9s ci-dessus, en particulier comment <code>get_posts<\/code> fonctionne, comment construire une requ\u00eate personnalis\u00e9e, et comment afficher les donn\u00e9es sur l\u2019interface publique du site.<br \/>\nEnsuite, je vous fournirai un exemple r\u00e9el avec un extrait de code que vous pourrez r\u00e9cup\u00e9rer, modifier et utiliser sur votre environnement de test pour vos d\u00e9veloppements.<\/p>\n<p>Note : Nous faisons g\u00e9n\u00e9ralement la diff\u00e9rence entre les articles, les pages et les types de publications personnalis\u00e9s. Dans cet article, <strong>nous utilisons le terme \u00ab\u00a0<em>posts<\/em>\u00a0\u00bb pour les articles de blog r\u00e9guliers ainsi que pour les pages et les types de publications personnalis\u00e9s<\/strong>. Tous ces types de publication sont stock\u00e9s dans la table \u00ab <em>wp_posts<\/em>\u00a0<em>\u00bb <\/em>de la base de donn\u00e9es. La principale diff\u00e9rence entre les types de publications r\u00e9side dans la valeur du champ \u00ab <em>post_type\u00a0<\/em><em>\u00bb. <\/em><strong>Du point de vue d&rsquo;un d\u00e9veloppeur, les articles, les pages et les types de publications personnalis\u00e9s sont tous des publications<\/strong>.<\/p>\n<ul>\n<li><a href=\"#get-posts\">Introduction \u00e0 la Fonction get_posts de WordPress<\/a><\/li>\n<li><a href=\"#parameters\">Comment Construire des Requ\u00eates avec les Param\u00e8tres get_posts<\/a><\/li>\n<li><a href=\"#get-posts\">Comment Afficher les Donn\u00e9es get_posts<\/a><\/li>\n<li><a href=\"#example\">Exemple du Monde R\u00e9el : Affichage d&rsquo;une Liste Hautement Personnalis\u00e9e de Publications avec un Code Court Personnalis\u00e9<\/a><\/li>\n<\/ul>\n<h2 id=\"get-posts\">Introduction \u00e0 la Fonction get_posts de WordPress<\/h2>\n<p>Le Codex d\u00e9crit que la <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_posts\/\">fonction <code>get_posts<\/code><\/a> comme ci-dessous :<\/p>\n<blockquote><p>R\u00e9cup\u00e8re un tableau des derni\u00e8res publications, ou des publications correspondant aux crit\u00e8res donn\u00e9s.<\/p><\/blockquote>\n<p>Nous pouvons utiliser <code>get_posts<\/code> de cette fa\u00e7on :<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'numberposts'\t=&gt; 20,\n\t'category'\t\t=&gt; 4\n);\n$my_posts = get_posts( $args );\n\nif( ! empty( $my_posts ) ){\n\t$output = '&lt;ul&gt;';\n\tforeach ( $my_posts as $p ){\n\t\t$output .= '&lt;li&gt;&lt;a href=\"' . get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t. $p-&gt;post_title . '&lt;\/a&gt;&lt;\/li&gt;';\n\t}\n\t$output .= '&lt;ul&gt;';\n}<\/code><\/pre>\n<p>\u00a0<\/p>\n<p>La fonction ci-dessus r\u00e9cup\u00e8re les 20 derniers articles de blog dans la cat\u00e9gorie sp\u00e9cifi\u00e9e (par d\u00e9faut le \u00ab\u00a0<code>post_type<\/code>\u00a0\u00bb est \u00ab\u00a0<code>post<\/code>\u00a0\u00bb) et retourne un tableau d&rsquo;objets <code>$post<\/code>. Vous pouvez it\u00e9rer sur le tableau pour afficher les articles \u00e0 l&rsquo;\u00e9cran. C&rsquo;est assez facile, non ?<\/p>\n<p><code>get_posts<\/code> <a href=\"https:\/\/kinqsta.com\/fr\/blog\/requetes-wp\/\">utilise <code>WP_Query<\/code><\/a> pour r\u00e9cup\u00e9rer les \u00e9l\u00e9ments de publications, et il conserve un tableau des m\u00eames param\u00e8tres disponibles dans <code>WP_Query<\/code> (\u00e0 quelques exceptions pr\u00e8s). Nous avons donc une \u00e9norme liste de variables que nous pouvons utiliser pour construire nos requ\u00eates personnalis\u00e9es. Ces param\u00e8tres sont regroup\u00e9s en <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#parameters\">15 cat\u00e9gories<\/a> :<\/p>\n<ul>\n<li>Param\u00e8tres d\u2019auteur<\/li>\n<li>Param\u00e8tres de cat\u00e9gorie<\/li>\n<li>Param\u00e8tres d\u2019\u00e9tiquette<\/li>\n<li>Param\u00e8tres de taxonomie<\/li>\n<li>Param\u00e8tres de recherche<\/li>\n<li>Param\u00e8tres d\u2019article et de page<\/li>\n<li>Param\u00e8tres de mot de passe<\/li>\n<li>Param\u00e8tres de type de publication<\/li>\n<li>Param\u00e8tres de tri et de tri par<\/li>\n<li>Param\u00e8tres de date<\/li>\n<li>Param\u00e8tres de champ personnalis\u00e9 (post-m\u00e9ta)<\/li>\n<li>Param\u00e8tres de permission<\/li>\n<li>Param\u00e8tres de type mime<\/li>\n<li>Param\u00e8tres de mise en cache<\/li>\n<li>Param\u00e8tres de champs de retour<\/li>\n<\/ul>\n<p>Un coup d&rsquo;\u0153il rapide \u00e0 la liste ci-dessus peut vous donner une id\u00e9e de la vari\u00e9t\u00e9 des requ\u00eates personnalis\u00e9es que vous pouvez construire et ex\u00e9cuter dans la base de donn\u00e9es WordPress. Donc, plongeons plus profond\u00e9ment dans les param\u00e8tres de requ\u00eate et commen\u00e7ons \u00e0 construire nos listes de publications.<\/p>\n<h2 id=\"parameters\">Comment Construire des Requ\u00eates avec WordPress get_posts<\/h2>\n<p>Chaque cat\u00e9gorie de param\u00e8tres se rapporte \u00e0 la m\u00eame information. Par exemple, nous pouvons construire une requ\u00eate pour r\u00e9cup\u00e9rer les publications de l&rsquo;auteur ou des auteurs sp\u00e9cifi\u00e9s ou exclure l&rsquo;auteur ou les auteurs sp\u00e9cifi\u00e9s, en d\u00e9finissant l&rsquo;auteur par ID ou pseudonyme. De la m\u00eame mani\u00e8re, nous pouvons construire des requ\u00eates en r\u00e9cup\u00e9rant les publications par cat\u00e9gorie, \u00e9tiquette, taxonomie, date, champs personnalis\u00e9s et plus encore.<\/p>\n<h3>Comment Utiliser les Param\u00e8tres pour Construire des Requ\u00eates Simples<\/h3>\n<p>De nombreux param\u00e8tres peuvent \u00eatre utilis\u00e9s de mani\u00e8re assez similaire, quelle que soit la cat\u00e9gorie \u00e0 laquelle ils appartiennent. Par exemple, les param\u00e8tres suivants permettent d&rsquo;interroger la base de donn\u00e9es par auteur(s) de publication :<\/p>\n<ul>\n<li><code>author<\/code> (<em>int<\/em>) \u2013 ID auteur<\/li>\n<li><code>author_name<\/code> (<em>string<\/em>) \u2013 <code>user_nicename<\/code> de l&rsquo;auteur<\/li>\n<li><code>author__in<\/code> (<em>array<\/em>) \u2013 un tableau d&rsquo;ID d&rsquo;auteurs multiples<\/li>\n<li><code>author__not_in<\/code> (<em>array<\/em>) \u2013 un tableau d&rsquo;ID de plusieurs auteurs \u00e0 exclure des r\u00e9sultats<\/li>\n<\/ul>\n<p>Comment utiliser ces param\u00e8tres ?<\/p>\n<p>Dans l&rsquo;exemple suivant, le param\u00e8tre \u00ab\u00a0author\u00a0\u00bb sp\u00e9cifie que nous voulons les publications les plus r\u00e9centes \u00e9crites par l&rsquo;auteur avec ID = 1 :<\/p>\n<pre><code class=\"language-php\">$my_posts = get_posts( array( 'author' =&gt; 1 ) );<\/code><\/pre>\n<p>Le m\u00eame param\u00e8tre \u00ab\u00a0<em><code>author<\/code>\u00a0\u00bb<\/em> permet d&rsquo;interroger la base de donn\u00e9es de diff\u00e9rentes mani\u00e8res :<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from specific authors\n$my_posts = get_posts( array( 'author' =&gt; '1,5,12' ) );<\/code><\/pre>\n<pre><code class=\"language-php\">\/\/ return an array of posts excluding the specified author\n$my_posts = get_posts( array( 'author' =&gt; -1 ) );<\/code><\/pre>\n<p>Ainsi, en fonction de la valeur du param\u00e8tre, vous obtiendrez un ensemble de r\u00e9sultats avec les publications d&rsquo;un seul auteur (entier), de plusieurs auteurs (liste des valeurs s\u00e9par\u00e9es par des virgules) ou excluant un auteur (valeurs n\u00e9gatives).<\/p>\n<p>D&rsquo;autres param\u00e8tres offrent une flexibilit\u00e9 suppl\u00e9mentaire. Par exemple, l&rsquo;appel suivant pour <code>get_posts<\/code> retourne un tableau des derni\u00e8res publications du blog de plusieurs auteurs :<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from multiple authors\n$my_posts = get_posts( array( 'author__in' =&gt; array( 1, 5, 12 ) ) );<\/code><\/pre>\n<p>Et nous pouvons aussi exclure plusieurs auteurs :<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from multiple authors\n$my_posts = get_posts( array( 'author__not_in' =&gt; array( 1, 5, 12 ) ) );<\/code><\/pre>\n<p>De m\u00eame, nous pouvons utiliser les param\u00e8tres de cat\u00e9gorie, d\u2019\u00e9tiquettes, de type de publication, avec quelques diff\u00e9rences sp\u00e9cifiques. Voir, \u00e0 titre d&rsquo;exemple, les param\u00e8tres de cat\u00e9gorie :<\/p>\n<ul>\n<li><code>cat<\/code> (<em>int<\/em>)<\/li>\n<li><code>category_name<\/code> (<em>string<\/em>)<\/li>\n<li><code>category__and<\/code> (<em>array<\/em>)<\/li>\n<li><code>category__in<\/code> (<em>array<\/em>)<\/li>\n<li><code>category__not_in<\/code> (<em>array<\/em>)<\/li>\n<\/ul>\n<p>De toute fa\u00e7on, tous les param\u00e8tres ne sont pas aussi faciles \u00e0 utiliser que ces param\u00e8tres. De plus, nous pouvons utiliser les param\u00e8tres de cat\u00e9gorie, les param\u00e8tres de type de publication, les param\u00e8tres de type mime, etc. en une seule requ\u00eate. Cela signifie que nous avons un contr\u00f4le granulaire sur les \u00e9l\u00e9ments du jeu de r\u00e9sultats, et nous pouvons construire des requ\u00eates plus avanc\u00e9es bas\u00e9es sur les types de publications, les taxonomies personnalis\u00e9es et les champs personnalis\u00e9s.<\/p>\n<p>Alors, plongeons plus profond\u00e9ment !<\/p>\n<h3>Comment Construire des Requ\u00eates Avanc\u00e9es dans WordPress<\/h3>\n<p>Faisons un pas en avant avec une requ\u00eate plus avanc\u00e9e bas\u00e9e sur des types de publications et des taxonomies personnalis\u00e9s. Supposons que vous ayez le type de publication suivant :<\/p>\n<p><strong> nom <\/strong>: book<br \/>\n<strong> nom de taxonomie <\/strong>: book_category, book_author<br \/>\n<strong>support pour<\/strong>: title, editor, thumbnail, excerpt, custom-fields<\/p>\n<h4>Types de Publications Personnalis\u00e9s et Taxonomies Personnalis\u00e9es<\/h4>\n<p>Supposons que vous vouliez une liste des livres les plus r\u00e9cents dans la taxonomie personnalis\u00e9e <code>book_category<\/code> sp\u00e9cifi\u00e9e. Voici le tableau des arguments :<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t'terms'\t\t=&gt; 'sci-fi'\n\t\t)\n\t),\n);<\/code><\/pre>\n<p>Les arguments ci-dessus disent simplement \u00e0 WordPress de r\u00e9cup\u00e9rer tous les livres dans \u00ab\u00a0<code>sci-fi<\/code>\u00a0\u00bb\u00a0\u00ab\u00a0<code>book_category<\/code>\u00a0\u00bb.<\/p>\n<p>Le param\u00e8tre \u00ab\u00a0<code>tax_query<\/code>\u00a0\u00bb prend un tableau de tableaux d&rsquo;arguments (c&rsquo;est-\u00e0-dire un tableau de tableaux). Ces tableaux imbriqu\u00e9s permettent de construire des requ\u00eates tr\u00e8s complexes bas\u00e9es sur des taxonomies multiples, comme le montre l&rsquo;exemple ci-dessous :<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'numberposts'\t=&gt; 10,\n\t'post_type'\t\t=&gt; 'book',\n\t'relation'\t\t=&gt; 'AND',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t'terms'\t\t=&gt; 'sci-fi'\n\t\t),\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_author',\n\t\t\t'field'\t\t=&gt; 'term_id',\n\t\t\t'terms'\t\t=&gt; 22\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>Ces param\u00e8tres nous permettent de r\u00e9cup\u00e9rer une liste des 10 derniers types de publication \u00ab\u00a0<code>book<\/code>\u00a0\u00bb dans \u00ab\u00a0<code>sci-fi<\/code>\u00a0\u00bb \u00ab\u00a0<code>book_category<\/code>\u00a0\u00bb, \u00e9crits par le \u00ab\u00a0<code>book_author<\/code>\u00a0\u00bb avec l\u2019ID #22. Le param\u00e8tre \u00ab\u00a0<code>relation<\/code>\u00a0\u00bb d\u00e9finit la relation logique entre chaque taxonomie list\u00e9e dans \u00ab\u00a0<code>tax_query<\/code>\u00a0\u00bb. Nous d\u00e9finissons sa valeur sur <code>AND<\/code> parce que nous avons besoin de r\u00e9cup\u00e9rer tous les livres appartenant \u00e0 la cat\u00e9gorie \u00ab\u00a0<code>sci-fi<\/code>\u00a0\u00bb <code>AND<\/code> \u00e9crits par l&rsquo;auteur #22.<\/p>\n<h4>Comment Construire des Requ\u00eates de M\u00e9ta \u00e0 l&rsquo;aide de Param\u00e8tres de Champ Personnalis\u00e9s<\/h4>\n<p>De temps en temps, vous pouvez avoir besoin de construire des listes de publications en fonction d&rsquo;une cl\u00e9 et\/ou d&rsquo;une valeur de champ personnalis\u00e9e sp\u00e9cifique.<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_key'\t\t=&gt; 'cover',\n\t'meta_value'\t=&gt; 'paperback',\n\t'meta_compare'\t=&gt; '='\n);<\/code><\/pre>\n<p>Ces param\u00e8tres nous permettent de r\u00e9cup\u00e9rer toutes les publications par cl\u00e9 et valeur de champ personnalis\u00e9e. \u00ab\u00a0<code>meta_compare<\/code>\u00a0\u00bb d\u00e9finit l&rsquo;op\u00e9rateur requis pour tester la valeur du param\u00e8tre \u00ab\u00a0<code>meta_value<\/code>\u00a0\u00bb. Ici,\u00a0\u00ab\u00a0<code>meta_value<\/code>\u00a0\u00bb est \u00ab\u00a0<code>=<\/code>\u00a0\u00bb, qui est aussi la valeur par d\u00e9faut.<\/p>\n<p>Les valeurs disponibles sont <code>'='<\/code>, <code>'!='<\/code>, <code>'&gt;'<\/code>, <code>'&gt;='<\/code>, <code>'&lt;'<\/code>, <code>'&lt;='<\/code>, <code>'LIKE'<\/code>, <code>'NOT LIKE'<\/code>, <code>'IN'<\/code>, <code>'NOT IN'<\/code>, <code>'BETWEEN'<\/code>, <code>'NOT BETWEEN'<\/code>, <code>'NOT EXISTS'<\/code>, <code>'REGEXP'<\/code>, <code>'NOT REGEXP'<\/code> ou\u00a0<code>'RLIKE'<\/code>.<\/p>\n<p>C&rsquo;est un exemple assez simple, mais nous pouvons construire des requ\u00eates plus avanc\u00e9es. Dans l&rsquo;exemple suivant, nous interrogeons la base de donn\u00e9es pour les livres fantastiques publi\u00e9s apr\u00e8s 2010 :<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'meta_key'\t\t=&gt; 'year_published',\n\t'meta_value_num'\t=&gt; 2010,\n\t'meta_compare'\t=&gt; '&gt;',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug'\n\t\t\t'terms'\t\t=&gt; 'fantasy'\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>Et nous pouvons aller encore plus loin. Dans l&rsquo;exemple suivant, nous m\u00e9langeons un type de publication avec une taxonomie personnalis\u00e9e et deux champs personnalis\u00e9s :<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug'\n\t\t\t'terms'\t\t=&gt; array( 'fantasy' )\n\t\t)\n\t),\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\tarray(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\tarray(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>Ici, nous \u00e9tablissons un tableau de param\u00e8tres pour r\u00e9cup\u00e9rer une liste de livres fantastiques publi\u00e9s apr\u00e8s 2010 qui co\u00fbtent <code>BETWEEN<\/code> 10 et 25$.<\/p>\n<p>Vous pouvez voir que le param\u00e8tre \u00ab\u00a0<code>meta_query<\/code>\u00a0\u00bb fonctionne comme le param\u00e8tre \u00ab\u00a0<code>tax_query<\/code>\u00a0\u00bb. Il conserve un tableau de tableaux, ce qui nous permet d&rsquo;effectuer des requ\u00eates avanc\u00e9es bas\u00e9es sur de multiples paires m\u00e9ta-cl\u00e9s\/valeurs. Pour une liste compl\u00e8te des param\u00e8tres de requ\u00eate et un bon nombre d&rsquo;exemples, voir la section <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/\"><code>WP_Query<\/code> documentation<\/a>.<\/p>\n<h3>Pourquoi get_posts est Limit\u00e9 \u00e0 5 Publications WordPress ?<\/h3>\n<p>La fonction <code>get_posts<\/code> prend les m\u00eames arguments que <code>WP_Query::parse_query()<\/code> (<a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/WP_Query\/parse_query\/\">voir le Codex<\/a>), mais certains param\u00e8tres sp\u00e9cifiques la rendent l\u00e9g\u00e8rement diff\u00e9rente d&rsquo;un objet <code>WP_Query<\/code>.<\/p>\n<p>Peut-\u00eatre que vous n&rsquo;avez pas utilis\u00e9 le param\u00e8tre \u00ab\u00a0<code>numberposts<\/code>\u00a0\u00bb dans vos requ\u00eates et que vous vous demandez pourquoi vous ne voyez que 5 \u00e9l\u00e9ments dans votre liste.<\/p>\n<p>Par d\u00e9faut, le nombre de publications que vous d\u00e9finissez dans <strong>Param\u00e8tres \u2192 Lecture<\/strong> d\u00e9termine le nombre de publications \u00e0 r\u00e9cup\u00e9rer dans une requ\u00eate WordPress. Quoi qu&rsquo;il en soit, si vous ne sp\u00e9cifiez pas de valeur personnalis\u00e9e pour \u00ab\u00a0<code>numberposts<\/code>\u00a0\u00bb ou \u00ab\u00a0<code>posts_per_page<\/code>\u00a0\u00bb, <code>get_posts<\/code> retourne un nombre diff\u00e9rent de publications.<\/p>\n<ul>\n<li>\u00ab\u00a0<code>number_posts<\/code>\u00a0\u00bb est le nombre total de publications \u00e0 r\u00e9cup\u00e9rer. C&rsquo;est un alias de \u00ab\u00a0<code>posts_per_page<\/code>\u00a0\u00bb dans <code>WP_Query<\/code>, mais il y a une diff\u00e9rence entre les deux : par d\u00e9faut, <strong>le nombre de publications \u00e0 r\u00e9cup\u00e9rer en utilisant <code>get_posts<\/code> est 5<\/strong>, alors que \u00ab\u00a0<code>posts_per_page<\/code>\u00a0\u00bb dans <code>WP_Query<\/code> est le nombre de publications par page de votre blog WordPress. Vous pouvez remplacer la valeur par d\u00e9faut en d\u00e9finissant une valeur personnalis\u00e9e pour \u00ab\u00a0<code>numberposts<\/code>\u00a0\u00bb ou \u00ab\u00a0<code>posts_per_page<\/code>\u00a0\u00bb dans le tableau des arguments.<\/li>\n<\/ul>\n<p>En plus de \u00ab\u00a0<code>numberposts<\/code>\u00a0\u00bb, les param\u00e8tres suivants sont sp\u00e9cifiques \u00e0 <code>get_posts<\/code> :<\/p>\n<ul>\n<li>\u00ab\u00a0<code>category<\/code>\u00a0\u00bb est une liste d&rsquo;ID de cat\u00e9gorie s\u00e9par\u00e9s par des virgules. C&rsquo;est un alias du param\u00e8tre \u00ab\u00a0<code>cat<\/code>\u00a0\u00bb dans <code>WP_Query<\/code>.<\/li>\n<li>\u00ab\u00a0<code>include<\/code>\u00a0\u00bb est une liste d&rsquo;ID de publications s\u00e9par\u00e9s par des virgules. C&rsquo;est un alias du param\u00e8tre \u00ab\u00a0<code>post__in<\/code>\u00a0\u00bb dans <code>WP_Query<\/code>.<\/li>\n<li>\u00ab\u00a0<code>exclude<\/code>\u00a0\u00bb est une liste d&rsquo;ID de mpublications s\u00e9par\u00e9s par des virgules.<\/li>\n<li>\u00ab\u00a0<code>suppress_filters<\/code>\u00a0\u00bb sp\u00e9cifie s&rsquo;il faut supprimer les filtres. Ce param\u00e8tre est sur true par d\u00e9faut dans <code>get_posts<\/code>, alors qu&rsquo;il est sur false par d\u00e9faut dans <code>WP_Query<\/code> (<a href=\"https:\/\/core.trac.wordpress.org\/browser\/tags\/5.2\/src\/wp-includes\/class-wp-query.php#L709\">voir la section <\/a>sur Track).<\/li>\n<\/ul>\n<p>La fonction <code>get_posts<\/code> est d\u00e9finie dans <code>wp-includes\/post.php<\/code>. Vous pouvez vous plonger dans le fonctionnement de <code>get_posts<\/code> soit en v\u00e9rifiant le code source <a href=\"https:\/\/core.trac.wordpress.org\/browser\/tags\/5.2\/src\/wp-includes\/post.php#L1901\">sur Track (WordPress 5.2)<\/a> ou dans votre installation WordPress locale.<\/p>\n<h3>Ordre des Publications<\/h3>\n<p>Les options \u00ab\u00a0<code>orderby<\/code>\u00a0\u00bb et \u00ab\u00a0<code>order<\/code>\u00a0\u00bb permettent de trier les \u00e9l\u00e9ments dans le jeu de r\u00e9sultats. Vous triez les publications par \u00ab\u00a0<code>ID<\/code>\u00a0\u00bb, \u00ab\u00a0<code>author<\/code>\u00a0\u00bb, \u00ab\u00a0<code>title<\/code>\u00a0\u00bb, \u00ab\u00a0<code>name<\/code>\u00a0\u00bb, \u00ab\u00a0<code>type<\/code>\u00a0\u00bb, \u00ab\u00a0<code>date<\/code>\u00a0\u00bb, \u00ab\u00a0<code>modified<\/code> \u00ab\u00a0, \u00ab\u00a0<code>parent<\/code>\u00a0\u00bb, \u00ab\u00a0<code>rand<\/code>\u00a0\u00bb, \u00ab\u00a0<code>comment_count<\/code>\u00a0\u00bb et de nombreuses autres fa\u00e7ons, par ordre croissant ou d\u00e9croissant.<\/p>\n<p>Si vous avez une requ\u00eate simple, il vous suffit de d\u00e9finir une valeur pour \u00ab\u00a0<code>order<\/code>\u00a0\u00bb et \u00ab\u00a0<code>orderby<\/code>\u00a0\u00bb. Dans l&rsquo;exemple suivant, les publications sont tri\u00e9es par nom de publication par ordre croissant :<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'author'\t=&gt; '1,5,12',\n\t'orderby'\t=&gt; 'name',\n\t'order'\t\t=&gt; 'ASC'\n);<\/code><\/pre>\n<p>C&rsquo;est assez simple. Mais que se passerait-il si vous aviez une requ\u00eate avanc\u00e9e ? Par exemple : Peut-on trier les \u00e9l\u00e9ments par une ou plusieurs valeurs de champ personnalis\u00e9es dans une m\u00e9ta requ\u00eate avanc\u00e9e ?<\/p>\n<p>WordPress 4.0 et <a href=\"https:\/\/make.wordpress.org\/core\/2015\/03\/30\/query-improvements-in-wp-4-2-orderby-and-meta_query\/\">WordPress 4.2 ont apport\u00e9 des am\u00e9liorations importantes<\/a> aux param\u00e8tres \u00ab\u00a0<code>orderby<\/code>\u00a0\u00bb et \u00ab\u00a0<code>meta_query<\/code>\u00a0\u00bb. Nous avons maintenant une nouvelle syntaxe pour classer par clauses sp\u00e9cifiques d&rsquo;une m\u00e9ta requ\u00eate. Gr\u00e2ce \u00e0 la nouvelle syntaxe, nous pouvons utiliser des index pour cr\u00e9er des r\u00e9f\u00e9rences aux clauses sp\u00e9cifiques de la m\u00e9ta requ\u00eate \u00e0 partir du param\u00e8tre \u00ab\u00a0<code>orderby<\/code>\u00a0\u00bb.<\/p>\n<p>Gr\u00e2ce \u00e0 ces am\u00e9liorations, la m\u00e9ta requ\u00eate dans l&rsquo;exemple ci-dessus peut \u00eatre \u00e9crite comme suit :<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\t'year_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\t'price_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t),\n\t'orderby' =&gt; 'price_clause',\n);<\/code><\/pre>\n<p>Dans l&rsquo;exemple ci-dessus, nous avons class\u00e9 les \u00e9l\u00e9ments par \u00ab\u00a0<code>price_clause<\/code>\u00a0\u00bb.<\/p>\n<p>Et nous pouvons faire encore plus. <a href=\"https:\/\/make.wordpress.org\/core\/2014\/08\/29\/a-more-powerful-order-by-in-wordpress-4-0\/\">Depuis WordPress 4.0<\/a>, nous pouvons passer par <code>get_posts<\/code> un tableau de m\u00e9ta-indexes de requ\u00eate au lieu d&rsquo;un index unique, comme dans l&rsquo;exemple ci-dessous :<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\t'year_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\t'price_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t),\n\t'orderby' =&gt; array( 'price_clause' =&gt; 'ASC', 'year_clause' =&gt; 'DESC' ),\n);<\/code><\/pre>\n<p>F\u00e9licitations, vous avez construit une m\u00e9ta requ\u00eate avanc\u00e9e, et tri\u00e9 les r\u00e9sultats d&rsquo;abord par \u00ab\u00a0<code>price_clause<\/code>\u00a0\u00bb en ordre croissant, puis par \u00ab\u00a0<code>year_clause<\/code>\u00a0\u00bb en ordre d\u00e9croissant.<\/p>\n<p>Voir <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#order-orderby-parameters\">la liste compl\u00e8te des options de tri<\/a> dans le Codex.<\/p>\n<p>Il est temps pour nous d&rsquo;afficher les donn\u00e9es.<\/p>\n<p>Lectures sugg\u00e9r\u00e9es : <a href=\"https:\/\/kinqsta.com\/fr\/blog\/phpinfo\/\">Comment cr\u00e9er et utiliser facilement une page phpinfo<\/a>.<\/p>\n<h2 id=\"display\">Comment Afficher les Donn\u00e9es Retourn\u00e9es par get_posts<\/h2>\n<p>WordPress <code>get_posts<\/code> retourne un tableau d\u2019<a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_post\/\">objets <code>WP_Post<\/code><\/a> nous donnant acc\u00e8s \u00e0 un certain nombre de variables pour chaque publication s\u00e9lectionn\u00e9e stock\u00e9e dans la table de base de donn\u00e9es <code>wp_posts<\/code> :<\/p>\n<ul>\n<li>ID<\/li>\n<li>post_author<\/li>\n<li>post_name<\/li>\n<li>post_type<\/li>\n<li>post_title<\/li>\n<li>post_date<\/li>\n<li>post_date_gmt<\/li>\n<li>post_content<\/li>\n<li>post_excerpt<\/li>\n<li>post_status<\/li>\n<li>comment_status<\/li>\n<li>ping_status<\/li>\n<li>post_password<\/li>\n<li>post_parent<\/li>\n<li>post_modified<\/li>\n<li>post_modified_gmt<\/li>\n<li>comment_count<\/li>\n<li>menu_order<\/li>\n<\/ul>\n<figure style=\"width: 2176px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/08\/tables-wp-posts-1.png\" alt=\"Structure des tables wp_posts dans phpMyAdmin\" width=\"2176\" height=\"1542\"><figcaption class=\"wp-caption-text\">Structure des tables wp_posts dans phpMyAdmin<\/figcaption><\/figure>\n<p>Vous pouvez facilement acc\u00e9der \u00e0 ces donn\u00e9es \u00e0 l&rsquo;aide d&rsquo;un cycle <code>foreach<\/code> comme ci-dessous :<\/p>\n<pre><code class=\"language-php\">$custom_posts = get_posts( $args );\n\nif( ! empty( $custom_posts ) ){\n\t$output = '&lt;ul&gt;';\n\tforeach ( $custom_posts as $p ){\n\n\t\t$output .= '&lt;li&gt;&lt;a href=\"' \n\t\t. get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t. $p-&gt;post_title . '&lt;\/a&gt;&lt;\/li&gt;';\n\t}\n\n\t$output .= '&lt;\/ul&gt;';\n}\n\nreturn $output ?? '&lt;strong&gt;Sorry. No posts matching your criteria!&lt;\/strong&gt;';<\/code><\/pre>\n<p>Si <code>get_posts<\/code> a trouv\u00e9 au moins une publication, il retourne un tableau d&rsquo;\u00e9l\u00e9ments que nous pouvons parcourir pour afficher le titre et un lien vers la publication originale. Nous avons utilis\u00e9 la <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_permalink\/\">fonction <code>get_permalink<\/code><\/a> pour r\u00e9cup\u00e9rer le lien permanent de la publication, car nous n&rsquo;avons pas de variable <code>WP_Post<\/code> correspondante.<\/p>\n<p>C&rsquo;est assez facile, mais comment pouvons-nous impl\u00e9menter ce code et construire nos listes de publications personnalis\u00e9es en utilisant les <code>get_posts<\/code> de WordPress ?<\/p>\n<p>Vous pouvez afficher les listes de publications sur vos pages de plusieurs fa\u00e7ons.<\/p>\n<ul>\n<li>Vous pouvez les inclure n&rsquo;importe o\u00f9 sur la page en modifiant un fichier <a href=\"https:\/\/kinqsta.com\/fr\/blog\/theme-enfant-wordpress\/\">mod\u00e8le de page du th\u00e8me enfant<\/a>.<\/li>\n<li>Vous pouvez les inclure dans un <a href=\"https:\/\/kinqsta.com\/fr\/blog\/widgets-wordpress\/\">widget de la barre lat\u00e9rale<\/a>.<\/li>\n<li>Vous pouvez les inclure dans le contenu d&rsquo;une publication <a href=\"https:\/\/kinqsta.com\/fr\/blog\/shortcodes-wordpress\/\">avec un code court personnalis\u00e9<\/a>.<\/li>\n<\/ul>\n<h2 id=\"example\">Exemple du Monde R\u00e9el : Comment Afficher une Liste Personnalis\u00e9e d&rsquo;\u00c9l\u00e9ments avec un Code Court<\/h2>\n<p>Je vais vous montrer comment construire un code court rapide et facile que vous pouvez inclure dans votre contenu. Quoi qu&rsquo;il en soit, je ne vais pas m&rsquo;enfoncer dans les codes courts, car nous avons d\u00e9j\u00e0 abord\u00e9 ce sujet dans <a href=\"https:\/\/kinqsta.com\/fr\/blog\/shortcodes-wordpress\/\">un pr\u00e9c\u00e9dent article de blog<\/a>.<\/p>\n<p>Tout d&rsquo;abord, cr\u00e9ez un nouveau r\u00e9pertoire dans le dossier <code>wp-content\/plugins<\/code> de votre r\u00e9pertoire <a href=\"https:\/\/kinqsta.com\/fr\/blog\/installer-wordpress-localement\/\">WordPress local<\/a> ou dans un fichier <a href=\"https:\/\/kinqsta.com\/fr\/docs\/hebergement-wordpress\/environnement-staging\/\">environnement de test<\/a>. Dans cet exemple, j&rsquo;ai nomm\u00e9 le r\u00e9pertoire <strong>kinsta-shortcodes<\/strong>.<\/p>\n<p>Dans <code>wp-content\/plugins\/<strong>kinsta-shortcodes<\/strong>\/crie<\/code> un fichier.php du m\u00eame nom que le nouveau r\u00e9pertoire : <code>kinsta-shortcodes.php<\/code>.<\/p>\n<p>Ouvrez le nouveau fichier dans votre dossier <a href=\"https:\/\/kinqsta.com\/fr\/blog\/meilleurs-editeurs-de-texte\/\">\u00e9diteur de texte favori<\/a> et incluez l&rsquo;en-t\u00eate suivant :<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/**\n * @package Kinsta_shortcodes\n * @version 1.0\n *\/\n\/*\nPlugin Name: Kinsta shortcodes\nPlugin URI: http:\/\/wordpress.org\/extend\/plugins\/#\nDescription: This is an example plugin \nAuthor: Your Name\nVersion: 1.0\nAuthor URI: https:\/\/yourwebsite.com\/\n*\/<\/code><\/pre>\n<p>Maintenant nous avons une toute nouvelle extension, mais elle ne fait toujours rien. Naviguez jusqu&rsquo;\u00e0 l&rsquo;\u00e9cran d&rsquo;administration des<strong> extensions<\/strong> dans votre <a href=\"https:\/\/kinqsta.com\/fr\/blog\/tableau-de-bord-admin-wordpress\/\">tableau de bord WordPress<\/a> et activez la nouvelle extension en vous assurant que <a href=\"https:\/\/kinqsta.com\/fr\/blog\/debogage-wordpress\/#how-to-manually-enable-wordpress-debug-mode\" target=\"_blank\" rel=\"noopener noreferrer\"><code>WP_DEBUG<\/code> est \u00e0 <code>true<\/code><\/a> dans votre fichier <code>wp-config.php<\/code>.<\/p>\n<p>Votre sandbox est maintenant pr\u00eate pour vos hacks. L&rsquo;\u00e9tape suivante consiste \u00e0 enregistrer un hook pour un code court personnalis\u00e9 :<\/p>\n<pre><code class=\"language-php\">\/**\n * Add a hook for a shortcode tag\n *\/\nfunction kinsta_shortcodes_init(){\n\tadd_shortcode( 'kinsta_get_posts', 'kinsta_get_posts_cb' );\n}\nadd_action('init', 'kinsta_shortcodes_init');<\/code><\/pre>\n<p><code>kinsta_get_get_posts<\/code> est le nom du code court et <code>kinsta_get_posts_cb<\/code> est le callback d\u00e9fini ci-dessous :<\/p>\n<pre><code class=\"language-php\">\/**\n * Register a shortcode\n *\n * @param array $atts Array of shortcode attributes\n *\/\nfunction kinsta_get_posts_cb( $atts ){\n\n\t\/\/ safely extract custom arguments and set default values\n\textract( shortcode_atts(\n\t\t\tarray(\n\t\t\t\t'numberposts'\t\t=&gt; 3,\n\t\t\t\t'post_type'\t\t\t=&gt; 'post',\n\t\t\t\t'book_category'\t\t=&gt; 'fantasy',\n\t\t\t\t'year_published'\t=&gt; 1900,\n\t\t\t\t'price_min'\t\t\t=&gt; 0,\n\t\t\t\t'price_max'\t\t\t=&gt; 50\n\t\t\t),\n\t\t\t$atts,\n\t\t\t'kinsta_get_posts'\n\t\t) );\n\n\t\/\/ define the array of query arguments\n\t$args = array(\n\t\t'numberposts'\t=&gt; $numberposts,\n\t\t'post_type'\t\t=&gt; $post_type,\n\t\t'tax_query'\t\t=&gt; array(\n\t\t\tarray(\n\t\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t\t'terms'\t\t=&gt; $book_category,\n\t\t\t)\n\t\t),\n\t\t'meta_query'\t=&gt; array(\n\t\t\t'relation'\t\t=&gt; 'AND',\n\t\t\t'year_clause'\t=&gt; array(\n\t\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t\t'value'\t\t=&gt; $year_published,\n\t\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t\t'compare'\t=&gt; '&gt;',\n\t\t\t),\n\t\t\t'price_clause'\t=&gt; array(\n\t\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t\t'value'\t\t=&gt; array( $price_min, $price_max ),\n\t\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t\t)\n\t\t),\n\t\t'orderby' =&gt; array( 'price_clause' =&gt; 'ASC' )\n\t);\n\n\t$custom_posts = get_posts( $args );\n\n\tif( ! empty( $custom_posts ) ){\n\t\t$output = '&lt;ul&gt;';\n\t\tforeach ( $custom_posts as $p ){\n\n\t\t\t$output .= '&lt;li&gt;&lt;a href=\"' \n\t\t\t. get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t\t. $p-&gt;post_title . '&lt;\/a&gt; (' \n\t\t\t. get_post_meta( $p-&gt;ID, 'year_published', true ) \n\t\t\t. ') - Price: ' . get_post_meta( $p-&gt;ID, 'price', true ) . '&lt;\/li&gt;';\n\t\t}\n\n\t\t$output .= '&lt;\/ul&gt;';\n\t}\n\nreturn $output ?? '&lt;strong&gt;Sorry. No posts matching your criteria!&lt;\/strong&gt;';<\/code><\/pre>\n<p>Nous d\u00e9finissons six attributs de code court que nous utilisons pour d\u00e9finir un tableau de param\u00e8tres, qui est finalement transmis \u00e0 la fonction WordPress <code>get_posts<\/code>. Si <code>$custom_posts<\/code> n&rsquo;est pas vide, alors un cycle <code>foreach<\/code> g\u00e9n\u00e8re le HTML d&rsquo;une liste non ordonn\u00e9e d&rsquo;\u00e9l\u00e9ments.<\/p>\n<p>Maintenant, vous et les auteurs de votre blog pouvez inclure des listes de publications en utilisant un code court comme le suivant :<\/p>\n<pre>[kinsta_get_posts post_type=\"book\" book_category=\"sci-fi\" numberposts=\"4\" price_min=1 price_max=250]<\/pre>\n<p>Bien s\u00fbr, vous pouvez changer le tableau d&rsquo;arguments comme vous le souhaitez et ex\u00e9cuter vos tests dans n&rsquo;importe quelle publication ou page de votre site de d\u00e9veloppement.<\/p>\n<figure id=\"attachment_54811\" aria-describedby=\"caption-attachment-54811\" style=\"width: 1532px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-54811 size-full\" src=\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/avancee-publications-construite-fonction-get_posts.png\" alt=\"Une liste avanc\u00e9e des publications construite avec la fonction get_posts\" width=\"1532\" height=\"1066\"><figcaption id=\"caption-attachment-54811\" class=\"wp-caption-text\">Une liste avanc\u00e9e des publications construite avec la fonction get_posts<\/figcaption><\/figure>\n\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>WordPress<strong> get_posts<\/strong> est une fonction puissante qui permet aux d\u00e9veloppeurs d&rsquo;inclure des listes de publications n&rsquo;importe o\u00f9 sur l\u2019interface publique de votre site WordPress. Elle utilise <code>WP_Query<\/code> mais est plus facile \u00e0 utiliser et est pr\u00e9f\u00e9rable \u00e0 <code>WP_Query<\/code> quand vous avez juste besoin de listes de publications. Quoi qu&rsquo;il en soit, une r\u00e9f\u00e9rence directe \u00e0 <code>WP_Query<\/code> est recommand\u00e9e lorsque vous avez besoin d&rsquo;afficher des publications dans une\u00a0<a href=\"https:\/\/codex.wordpress.org\/The_Loop\">Loop<\/a>.<\/p>\n<p>Donc, construisez vos listes, testez votre code, et quand vous \u00eates s\u00fbr qu&rsquo;il fonctionne bien, alors (et seulement alors) poussez-le sur votre site en production (mais <a href=\"https:\/\/kinqsta.com\/fr\/blog\/plugins-sauvegarde-wordpress\/\">effectuez d&rsquo;abord une sauvegarde<\/a>).<\/p>\n<p>Nous aimerions maintenant vous lire. Quelle est votre exp\u00e9rience avec la fonction <code>get_posts<\/code> de WordPress ? Avez-vous des cas d&rsquo;utilisation \u00e0 partager avec nous ? Faites-le dans les commentaires ci-dessous !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress get_posts est une fonction puissante permettant aux d\u00e9veloppeurs de r\u00e9cup\u00e9rer des \u00e9l\u00e9ments de contenu depuis la base de donn\u00e9es WordPress. Vous pouvez sp\u00e9cifier dans les &#8230;<\/p>\n","protected":false},"author":36,"featured_media":33162,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[47,279],"topic":[987,999],"class_list":["post-33145","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-webdev","tag-wp_query","topic-apprendre-php","topic-fonction-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles<\/title>\n<meta name=\"description\" content=\"Besoin de cr\u00e9er des listes d&#039;articles, de pages ou de types de publications personnalis\u00e9s ? Apprenez comment le faire avec la fonction get_posts de WordPress dans ce tutoriel \u00e9tendu !\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles\" \/>\n<meta property=\"og:description\" content=\"Besoin de cr\u00e9er des listes d&#039;articles, de pages ou de types de publications personnalis\u00e9s ? Apprenez comment le faire avec la fonction get_posts de WordPress dans ce tutoriel \u00e9tendu !\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-23T07:36:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-22T10:56:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Besoin de cr\u00e9er des listes d&#039;articles, de pages ou de types de publications personnalis\u00e9s ? Apprenez comment le faire avec la fonction get_posts de WordPress dans ce tutoriel \u00e9tendu !\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles\",\"datePublished\":\"2019-10-23T07:36:44+00:00\",\"dateModified\":\"2023-08-22T10:56:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/\"},\"wordCount\":3004,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png\",\"keywords\":[\"webdev\",\"WP_Query\"],\"articleSection\":[\"D\u00e9veloppement WordPress\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/\",\"url\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/\",\"name\":\"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png\",\"datePublished\":\"2019-10-23T07:36:44+00:00\",\"dateModified\":\"2023-08-22T10:56:43+00:00\",\"description\":\"Besoin de cr\u00e9er des listes d'articles, de pages ou de types de publications personnalis\u00e9s ? Apprenez comment le faire avec la fonction get_posts de WordPress dans ce tutoriel \u00e9tendu !\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png\",\"contentUrl\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png\",\"width\":1460,\"height\":730,\"caption\":\"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apprendre PHP\",\"item\":\"https:\/\/kinqsta.com\/fr\/sujets\/apprendre-php\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#website\",\"url\":\"https:\/\/kinqsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinqsta.com\/fr\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles","description":"Besoin de cr\u00e9er des listes d'articles, de pages ou de types de publications personnalis\u00e9s ? Apprenez comment le faire avec la fonction get_posts de WordPress dans ce tutoriel \u00e9tendu !","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/","og_locale":"fr_FR","og_type":"article","og_title":"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles","og_description":"Besoin de cr\u00e9er des listes d'articles, de pages ou de types de publications personnalis\u00e9s ? Apprenez comment le faire avec la fonction get_posts de WordPress dans ce tutoriel \u00e9tendu !","og_url":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2019-10-23T07:36:44+00:00","article_modified_time":"2023-08-22T10:56:43+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Besoin de cr\u00e9er des listes d'articles, de pages ou de types de publications personnalis\u00e9s ? Apprenez comment le faire avec la fonction get_posts de WordPress dans ce tutoriel \u00e9tendu !","twitter_image":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png","twitter_creator":"@carlodaniele","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Carlo Daniele","Dur\u00e9e de lecture estim\u00e9e":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles","datePublished":"2019-10-23T07:36:44+00:00","dateModified":"2023-08-22T10:56:43+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/"},"wordCount":3004,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png","keywords":["webdev","WP_Query"],"articleSection":["D\u00e9veloppement WordPress"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/","url":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/","name":"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles","isPartOf":{"@id":"https:\/\/kinqsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png","datePublished":"2019-10-23T07:36:44+00:00","dateModified":"2023-08-22T10:56:43+00:00","description":"Besoin de cr\u00e9er des listes d'articles, de pages ou de types de publications personnalis\u00e9s ? Apprenez comment le faire avec la fonction get_posts de WordPress dans ce tutoriel \u00e9tendu !","breadcrumb":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#primaryimage","url":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png","contentUrl":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2019\/10\/wordpress-get_posts.png","width":1460,"height":730,"caption":"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles"},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/fr\/blog\/wordpress-get_posts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Apprendre PHP","item":"https:\/\/kinqsta.com\/fr\/sujets\/apprendre-php\/"},{"@type":"ListItem","position":3,"name":"WordPress get_posts : Comment Utiliser Cette Fonction PHP Utile pour Construire des Listes d\u2019Articles"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/fr\/#website","url":"https:\/\/kinqsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinqsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinqsta.com\/fr\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/posts\/33145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/comments?post=33145"}],"version-history":[{"count":14,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/posts\/33145\/revisions"}],"predecessor-version":[{"id":43070,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/posts\/33145\/revisions\/43070"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/en"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/pt"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/fr"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/nl"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/it"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/de"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/se"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/translations\/jp"},{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/33145\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/media\/33162"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/media?parent=33145"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/tags?post=33145"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/topic?post=33145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}