{"id":231952,"date":"2023-06-05T17:50:49","date_gmt":"2023-06-05T17:50:49","guid":{"rendered":"https:\/\/soluvie.ca\/blog\/"},"modified":"2026-09-08T01:44:20","modified_gmt":"2026-09-08T01:44:20","slug":"blog","status":"publish","type":"page","link":"https:\/\/soluvie.ca\/en\/blog\/","title":{"rendered":"Blog"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row preset--group--divi-row--divi-sizing--h1k452m--10mmwjvst7\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_group_0 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module et_flex_column_3_5 et_flex_column_3_5_tablet et_flex_column_24_24_phone preset--group--divi-text--divi-font-header--h1y3ko5--7dk3v9yyy9 preset--group--divi-text--divi-css--h248z--y6rvbjhkv9\"><div class=\"et_pb_text_inner\"><h1 id=\"ameliorer-votre-qualite-de-vie-avec-soluvie\">Blog<\/h1>\n<\/div><\/div>\n\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module et_flex_column_16_24 et_flex_column_16_24_tablet et_flex_column_16_24_phone preset--group--divi-text--divi-font-body--h1yjkjr--ktv3iw7ps9 preset--group--divi-text--divi-css--h248z--y6rvbjhkv9\"><div class=\"et_pb_text_inner\"><p>Our latest articles<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_1 et_pb_row et_flex_row preset--group--divi-row--divi-sizing--h1k452m--10mmwjvst7\">\n<div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div id=\"aww-blog-wrapper\">\n\n  <div\n    id=\"awwwards-dynamic-blog-feed\"\n    class=\"premium-blog-showcase\"\n    aria-live=\"polite\"\n  >\n    <p class=\"aww-loading-text\"><\/p>\n  <\/div>\n\n  <div\n    id=\"aww-pagination\"\n    class=\"aww-pagination\"\n  ><\/div>\n\n<\/div>\n\n\n<style>\n\n\/* ============================================================\n   GRID\n   ============================================================ *\/\n\n.premium-blog-showcase {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--space-5);\n  width: 100%;\n}\n\n@media (min-width: 768px) {\n  .premium-blog-showcase {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n  }\n}\n\n@media (min-width: 1024px) {\n  .premium-blog-showcase {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n  }\n}\n\n\n\/* ============================================================\n   LOADING \/ ERROR\n   ============================================================ *\/\n\n.aww-loading-text {\n  grid-column: 1 \/ -1;\n  text-align: center;\n  font-family: inherit;\n  color: var(--text-muted-dark);\n  font-size: var(--step-1);\n  padding: var(--space-6) 0;\n  margin: 0;\n}\n\n\n\/* ============================================================\n   CARD\n   ============================================================ *\/\n\n.aww-card {\n  background: var(--bg-light);\n  border-radius: var(--radius-4);\n  border: 1px solid var(--border-subtle-light);\n\n  overflow: hidden;\n\n  opacity: 0;\n\n  animation: awwFadeUp 0.45s ease forwards;\n\n  display: flex;\n  flex-direction: column;\n\n  transition:\n    transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),\n    border-color 0.25s ease;\n}\n\n.aww-card:hover {\n  transform: translateY(-3px);\n}\n\n@keyframes awwFadeUp {\n  from {\n    opacity: 0;\n    transform: translateY(16px);\n  }\n\n  to {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n\n\n\/* ============================================================\n   LINK\n   ============================================================ *\/\n\n.aww-card-link-wrapper {\n  text-decoration: none;\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  color: inherit;\n}\n\n\n\/* ============================================================\n   IMAGE\n   ============================================================ *\/\n\n.aww-card-image-wrapper {\n  width: 100%;\n  height: 220px;\n  overflow: hidden;\n  border-bottom: 1px solid var(--border-subtle-light);\n}\n\n.aww-card-image {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  display: block;\n  transition: transform 0.4s ease;\n}\n\n.aww-card:hover .aww-card-image {\n  transform: scale(1.05);\n}\n\n\n\/* ============================================================\n   CONTENT\n   ============================================================ *\/\n\n.aww-card-content {\n  padding: var(--space-4);\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n}\n\n\n\/* ============================================================\n   META ROW\n   ============================================================ *\/\n\n.aww-card-topline {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n\n  flex-wrap: wrap;\n\n  gap: var(--space-2);\n\n  margin-bottom: var(--space-3);\n}\n\n\n\/* ============================================================\n   CATEGORY\n   ============================================================ *\/\n\n.aww-badge {\n  display: inline-flex;\n  align-items: center;\n\n  background: var(--primary);\n  color: var(--bg-light);\n\n  font-size: var(--step-0);\n  font-weight: 600;\n\n  padding:\n    var(--space-0)\n    var(--space-1);\n\n  border-radius: var(--radius-2);\n\n  text-transform: uppercase;\n\n  letter-spacing: 0.05em;\n}\n\n\n\/* ============================================================\n   DATE\n   ============================================================ *\/\n\n.aww-meta {\n  font-size: var(--step-0);\n  color: var(--text-muted-dark);\n\n  text-transform: uppercase;\n\n  letter-spacing: 0.05em;\n}\n\n\n\/* ============================================================\n   TITLE\n   ============================================================ *\/\n\n.aww-title {\n  font-size: var(--step-3);\n\n  line-height: var(--lh-title);\n\n  letter-spacing: var(--ls-title);\n\n  color: var(--text-title-dark);\n\n  margin:\n    0\n    0\n    var(--space-2)\n    0;\n\n  font-weight: 700;\n\n  transition: color 0.25s ease;\n}\n\n.aww-card:hover .aww-title {\n  color: var(--primary);\n}\n\n\n\/* ============================================================\n   EXCERPT\n   ============================================================ *\/\n\n.aww-excerpt {\n  font-size: var(--step-1);\n\n  line-height: var(--lh-body);\n\n  letter-spacing: var(--ls-body);\n\n  color: var(--text-body-dark);\n\n  margin:\n    0\n    0\n    var(--space-4)\n    0;\n\n  flex-grow: 1;\n}\n\n\n\/* ============================================================\n   READ MORE\n   ============================================================ *\/\n\n.aww-read-more {\n  font-size: var(--step-1);\n\n  color: var(--text-title-dark);\n\n  font-weight: 600;\n\n  display: flex;\n\n  align-items: center;\n\n  gap: var(--space-1);\n\n  margin-top: auto;\n\n  transition: color 0.25s ease;\n}\n\n.aww-read-more .arrow {\n  color: var(--brand-orange);\n\n  transition:\n    transform\n    0.3s\n    cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.aww-card:hover .aww-read-more .arrow {\n  transform: translateX(var(--space-1));\n}\n\n\n\/* ============================================================\n   PAGINATION\n   ============================================================ *\/\n\n.aww-pagination {\n  display: flex;\n\n  justify-content: center;\n\n  align-items: center;\n\n  flex-wrap: wrap;\n\n  gap: var(--space-2);\n\n  margin-top: var(--space-6);\n}\n\n.aww-page-btn {\n  appearance: none;\n\n  background: var(--bg-light);\n\n  border: 1px solid var(--border-subtle-light);\n\n  color: var(--text-title-dark);\n\n  font-size: var(--step-0);\n\n  padding:\n    var(--space-1)\n    var(--space-3);\n\n  border-radius: var(--radius-6);\n\n  cursor: pointer;\n\n  font-family: inherit;\n\n  font-weight: 600;\n\n  text-transform: uppercase;\n\n  letter-spacing: 0.05em;\n\n  transition:\n    background-color 0.25s ease,\n    color 0.25s ease,\n    border-color 0.25s ease;\n}\n\n.aww-page-btn:hover:not(:disabled),\n.aww-page-btn.active {\n  background: var(--primary);\n\n  color: var(--bg-light);\n\n  border-color: var(--primary);\n}\n\n.aww-page-btn:disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n\n.aww-pagination-dots {\n  color: var(--text-muted-dark);\n}\n\n\n\/* ============================================================\n   REDUCED MOTION\n   ============================================================ *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n  .aww-card {\n    opacity: 1;\n    transform: none;\n    animation: none;\n    transition: none;\n  }\n\n  .aww-title,\n  .aww-read-more,\n  .aww-read-more .arrow,\n  .aww-page-btn,\n  .aww-card-image {\n    transition: none;\n  }\n\n}\n\n<\/style>\n\n\n<script>\ndocument.addEventListener(\n  'DOMContentLoaded',\n  function () {\n\n    \"use strict\";\n\n\n    \/* ========================================================\n       ELEMENTS\n       ======================================================== *\/\n\n    const container =\n      document.getElementById(\n        'awwwards-dynamic-blog-feed'\n      );\n\n\n    const paginationContainer =\n      document.getElementById(\n        'aww-pagination'\n      );\n\n\n    const wrapper =\n      document.getElementById(\n        'aww-blog-wrapper'\n      );\n\n\n    if (\n      !container ||\n      !paginationContainer ||\n      !wrapper\n    ) {\n      return;\n    }\n\n\n\n    \/* ========================================================\n       LANGUAGE DETECTION\n       ======================================================== *\/\n\n    const pathname =\n      window.location.pathname;\n\n\n    const htmlLang =\n      (\n        document.documentElement.lang\n        || ''\n      ).toLowerCase();\n\n\n    \/*\n     * WPML English URL:\n     * \/en\/\n     *\/\n\n    const isEnglish =\n      \/^\\\/en(?:\\\/|$)\/i.test(pathname)\n      ||\n      htmlLang.startsWith('en');\n\n\n    const currentLanguage =\n      isEnglish\n        ? 'en'\n        : 'fr';\n\n\n    const locale =\n      isEnglish\n        ? 'en-CA'\n        : 'fr-CA';\n\n\n\n    \/* ========================================================\n       STRINGS\n       ======================================================== *\/\n\n    const strings = {\n\n      fr: {\n        loading:\n          'Chargement des derniers articles...',\n\n        empty:\n          'Aucun article trouv\u00e9.',\n\n        error:\n          'Impossible de charger les articles.',\n\n        article:\n          'Article',\n\n        readMore:\n          \"Lire l'article\",\n\n        previous:\n          'Pr\u00e9c\u00e9dent',\n\n        next:\n          'Suivant'\n      },\n\n\n      en: {\n        loading:\n          'Loading the latest articles...',\n\n        empty:\n          'No articles found.',\n\n        error:\n          'Unable to load articles.',\n\n        article:\n          'Article',\n\n        readMore:\n          'Read article',\n\n        previous:\n          'Previous',\n\n        next:\n          'Next'\n      }\n\n    };\n\n\n    const t =\n      strings[currentLanguage];\n\n\n    const postsPerPage =\n      12;\n\n\n\n    \/* ========================================================\n       DATE\n       ======================================================== *\/\n\n    const dateFormatter =\n      new Intl.DateTimeFormat(\n        locale,\n        {\n          day: 'numeric',\n          month: 'long',\n          year: 'numeric'\n        }\n      );\n\n\n\n    \/* ========================================================\n       TEXT FROM HTML\n       ======================================================== *\/\n\n    function stripHtml(html) {\n\n      const element =\n        document.createElement(\n          'div'\n        );\n\n\n      element.innerHTML =\n        html || '';\n\n\n      return (\n        element.textContent\n        ||\n        element.innerText\n        ||\n        ''\n      )\n        .replace(\/\\s+\/g, ' ')\n        .trim();\n\n    }\n\n\n\n    \/* ========================================================\n       EXCERPT LIMIT\n       ======================================================== *\/\n\n    function truncate(\n      text,\n      max = 130\n    ) {\n\n      if (\n        text.length <= max\n      ) {\n\n        return text;\n\n      }\n\n\n      const cut =\n        text.slice(\n          0,\n          max\n        );\n\n\n      const space =\n        cut.lastIndexOf(\n          ' '\n        );\n\n\n      return (\n        cut.slice(\n          0,\n          space > 0\n            ? space\n            : max\n        )\n        +\n        '\u2026'\n      );\n\n    }\n\n\n\n    \/* ========================================================\n       CATEGORY\n       ======================================================== *\/\n\n    function getCategory(post) {\n\n      const embedded =\n        post._embedded;\n\n\n      if (\n        !embedded ||\n        !Array.isArray(\n          embedded['wp:term']\n        )\n      ) {\n\n        return t.article;\n\n      }\n\n\n      for (\n        const group\n        of embedded['wp:term']\n      ) {\n\n        if (\n          !Array.isArray(group)\n        ) {\n          continue;\n        }\n\n\n        const category =\n          group.find(\n            term =>\n              term.taxonomy\n              === 'category'\n          );\n\n\n        if (\n          category &&\n          category.name\n        ) {\n\n          return category.name;\n\n        }\n\n      }\n\n\n      return t.article;\n\n    }\n\n\n\n    \/* ========================================================\n       STRICT LANGUAGE CHECK\n       ======================================================== *\/\n\n    function postMatchesLanguage(post) {\n\n      if (\n        !post ||\n        !post.link\n      ) {\n\n        return false;\n\n      }\n\n\n      let postPath = '';\n\n\n      try {\n\n        postPath =\n          new URL(\n            post.link,\n            window.location.origin\n          ).pathname;\n\n      } catch (error) {\n\n        return false;\n\n      }\n\n\n      const postIsEnglish =\n        \/^\\\/en(?:\\\/|$)\/i.test(\n          postPath\n        );\n\n\n      return isEnglish\n        ? postIsEnglish\n        : !postIsEnglish;\n\n    }\n\n\n\n    \/* ========================================================\n       API URL\n       ======================================================== *\/\n\n    function getApiUrl(page) {\n\n      const apiBase =\n        isEnglish\n          ? `${window.location.origin}\/en\/wp-json\/wp\/v2\/posts`\n          : `${window.location.origin}\/wp-json\/wp\/v2\/posts`;\n\n\n      const params =\n        new URLSearchParams();\n\n\n      params.set(\n        'lang',\n        currentLanguage\n      );\n\n\n      params.set(\n        'per_page',\n        postsPerPage\n      );\n\n\n      params.set(\n        'page',\n        page\n      );\n\n\n      \/*\n       * INCLUSION DE L'IMAGE DE MISE EN AVANT\n       *\/\n\n      params.set(\n        '_embed',\n        'wp:term,wp:featuredmedia'\n      );\n\n\n      params.set(\n        '_fields',\n        'id,date,link,title,excerpt,featured_media,_links,_embedded'\n      );\n\n\n      return (\n        apiBase\n        +\n        '?'\n        +\n        params.toString()\n      );\n\n    }\n\n\n\n    \/* ========================================================\n       LOAD POSTS\n       ======================================================== *\/\n\n    function loadPosts(\n      page = 1\n    ) {\n\n      container.innerHTML =\n        `<p class=\"aww-loading-text\">${t.loading}<\/p>`;\n\n\n      paginationContainer.innerHTML =\n        '';\n\n\n      const apiUrl =\n        getApiUrl(page);\n\n\n      fetch(\n        apiUrl,\n        {\n          method: 'GET',\n\n          credentials:\n            'same-origin',\n\n          headers: {\n            Accept:\n              'application\/json'\n          }\n        }\n      )\n\n        .then(response => {\n\n          if (!response.ok) {\n\n            throw new Error(\n              `REST API ${response.status}`\n            );\n\n          }\n\n\n          const totalPages =\n            Number.parseInt(\n              response.headers.get(\n                'X-WP-TotalPages'\n              ),\n              10\n            )\n            ||\n            1;\n\n\n          return response\n            .json()\n            .then(posts => ({\n              posts,\n              totalPages\n            }));\n\n        })\n\n\n        .then(\n          ({\n            posts,\n            totalPages\n          }) => {\n\n            const filteredPosts =\n              Array.isArray(posts)\n                ? posts.filter(\n                    postMatchesLanguage\n                  )\n                : [];\n\n\n            if (\n              filteredPosts.length\n              === 0\n            ) {\n\n              container.innerHTML =\n                `<p class=\"aww-loading-text\">${t.empty}<\/p>`;\n\n\n              return;\n\n            }\n\n\n            const html =\n              filteredPosts\n                .map(\n                  (\n                    post,\n                    index\n                  ) => {\n\n                    const title =\n                      post.title\n                        ?.rendered\n                      ||\n                      '';\n\n                    \/*\n                     * EXTRACTION DE L'IMAGE\n                     *\/\n                    let featuredImageHtml = '';\n                    \n                    const mediaEmbed = post._embedded && post._embedded['wp:featuredmedia'];\n                    \n                    if (mediaEmbed && mediaEmbed[0] && mediaEmbed[0].source_url) {\n                      \n                      let imageUrl = mediaEmbed[0].source_url;\n                      \n                      const sizes = mediaEmbed[0].media_details?.sizes;\n                      \n                      if (sizes) {\n                        if (sizes.medium_large) {\n                          imageUrl = sizes.medium_large.source_url;\n                        } else if (sizes.medium) {\n                          imageUrl = sizes.medium.source_url;\n                        }\n                      }\n                      \n                      featuredImageHtml = `\n                        <div class=\"aww-card-image-wrapper\">\n                          <img decoding=\"async\" \n                            src=\"${imageUrl}\" \n                            alt=\"${stripHtml(title).replace(\/\"\/g, '&quot;')}\" \n                            class=\"aww-card-image\" \n                            loading=\"lazy\" \n                          \/>\n                        <\/div>\n                      `;\n                    }\n\n\n                    const excerpt =\n                      truncate(\n                        stripHtml(\n                          post.excerpt\n                            ?.rendered\n                          ||\n                          ''\n                        )\n                      );\n\n\n                    const category =\n                      getCategory(\n                        post\n                      );\n\n\n                    const formattedDate =\n                      dateFormatter.format(\n                        new Date(\n                          post.date\n                        )\n                      );\n\n\n                    const delay =\n                      Math.min(\n                        index * 0.04,\n                        0.25\n                      );\n\n\n                    return `\n\n                      <article\n                        class=\"aww-card\"\n                        style=\"animation-delay:${delay}s\"\n                      >\n\n                        <a\n                          href=\"${post.link}\"\n                          class=\"aww-card-link-wrapper\"\n                        >\n\n                          ${featuredImageHtml}\n\n                          <div\n                            class=\"aww-card-content\"\n                          >\n\n                            <div\n                              class=\"aww-card-topline\"\n                            >\n\n                              <span\n                                class=\"aww-badge\"\n                              >\n                                ${category}\n                              <\/span>\n\n\n                              <time\n                                class=\"aww-meta\"\n                                datetime=\"${post.date}\"\n                              >\n                                ${formattedDate}\n                              <\/time>\n\n                            <\/div>\n\n\n                            <h3\n                              class=\"aww-title\"\n                            >\n                              ${title}\n                            <\/h3>\n\n\n                            ${\n                              excerpt\n                                ? `\n                                  <p\n                                    class=\"aww-excerpt\"\n                                  >\n                                    ${excerpt}\n                                  <\/p>\n                                `\n                                : ''\n                            }\n\n\n                            <div\n                              class=\"aww-read-more\"\n                            >\n\n                              ${t.readMore}\n\n                              <span\n                                class=\"arrow\"\n                                aria-hidden=\"true\"\n                              >\n                                \u2192\n                              <\/span>\n\n                            <\/div>\n\n                          <\/div>\n\n                        <\/a>\n\n                      <\/article>\n\n                    `;\n\n                  }\n                )\n                .join('');\n\n\n            container.innerHTML =\n              html;\n\n\n            if (\n              totalPages > 1\n            ) {\n\n              buildPagination(\n                page,\n                totalPages\n              );\n\n            }\n\n          }\n        )\n\n\n        .catch(error => {\n\n          console.error(\n            'Soluvie Blog Feed:',\n            error\n          );\n\n\n          container.innerHTML =\n            `<p class=\"aww-loading-text\">${t.error}<\/p>`;\n\n        });\n\n    }\n\n\n\n    \/* ========================================================\n       PAGINATION\n       ======================================================== *\/\n\n    function buildPagination(\n      currentPage,\n      totalPages\n    ) {\n\n      let html = '';\n\n\n      \/*\n       * Previous\n       *\/\n\n      html += `\n\n        <button\n          type=\"button\"\n          class=\"aww-page-btn\"\n          data-page=\"${currentPage - 1}\"\n          ${currentPage === 1 ? 'disabled' : ''}\n        >\n          ${t.previous}\n        <\/button>\n\n      `;\n\n\n      let lastRendered =\n        0;\n\n\n      for (\n        let i = 1;\n        i <= totalPages;\n        i++\n      ) {\n\n        const show =\n          i === 1\n          ||\n          i === totalPages\n          ||\n          (\n            i >= currentPage - 1\n            &&\n            i <= currentPage + 1\n          );\n\n\n        if (!show) {\n          continue;\n        }\n\n\n        if (\n          lastRendered &&\n          i - lastRendered > 1\n        ) {\n\n          html += `\n\n            <span\n              class=\"aww-pagination-dots\"\n              aria-hidden=\"true\"\n            >\n              \u2026\n            <\/span>\n\n          `;\n\n        }\n\n\n        html += `\n\n          <button\n            type=\"button\"\n            class=\"aww-page-btn ${\n              i === currentPage\n                ? 'active'\n                : ''\n            }\"\n            data-page=\"${i}\"\n            ${\n              i === currentPage\n                ? 'aria-current=\"page\"'\n                : ''\n            }\n          >\n            ${i}\n          <\/button>\n\n        `;\n\n\n        lastRendered =\n          i;\n\n      }\n\n\n      \/*\n       * Next\n       *\/\n\n      html += `\n\n        <button\n          type=\"button\"\n          class=\"aww-page-btn\"\n          data-page=\"${currentPage + 1}\"\n          ${currentPage === totalPages ? 'disabled' : ''}\n        >\n          ${t.next}\n        <\/button>\n\n      `;\n\n\n      paginationContainer.innerHTML =\n        html;\n\n    }\n\n\n\n    \/* ========================================================\n       PAGINATION CLICK\n       ======================================================== *\/\n\n    paginationContainer.addEventListener(\n      'click',\n      function (event) {\n\n        const button =\n          event.target.closest(\n            '.aww-page-btn[data-page]'\n          );\n\n\n        if (\n          !button ||\n          button.disabled ||\n          button.classList.contains(\n            'active'\n          )\n        ) {\n\n          return;\n\n        }\n\n\n        const page =\n          Number.parseInt(\n            button.dataset.page,\n            10\n          );\n\n\n        if (\n          !Number.isInteger(page)\n          ||\n          page < 1\n        ) {\n\n          return;\n\n        }\n\n\n        loadPosts(\n          page\n        );\n\n\n        wrapper.scrollIntoView({\n          behavior:\n            window.matchMedia(\n              '(prefers-reduced-motion: reduce)'\n            ).matches\n              ? 'auto'\n              : 'smooth',\n\n          block:\n            'start'\n        });\n\n      }\n    );\n\n\n\n    \/* ========================================================\n       INITIAL LOAD\n       ======================================================== *\/\n\n    loadPosts(1);\n\n  },\n  {\n    once: true\n  }\n);\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":9,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","footnotes":""},"categories":[],"class_list":["post-231952","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/pages\/231952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/comments?post=231952"}],"version-history":[{"count":6,"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/pages\/231952\/revisions"}],"predecessor-version":[{"id":940119,"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/pages\/231952\/revisions\/940119"}],"wp:attachment":[{"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/media?parent=231952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soluvie.ca\/en\/wp-json\/wp\/v2\/categories?post=231952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}