{"id":1835,"date":"2025-05-22T14:07:07","date_gmt":"2025-05-22T18:07:07","guid":{"rendered":"https:\/\/gmsh.ca\/recursos\/"},"modified":"2026-01-30T10:17:37","modified_gmt":"2026-01-30T15:17:37","slug":"recursos","status":"publish","type":"page","link":"https:\/\/gmsh.ca\/es\/recursos\/","title":{"rendered":"Recursos"},"content":{"rendered":"\n<!-- Hero Section -->\n<section \n    class=\"w-full px-4 sm:px-8 md:px-16 pt-6 pb-10 lg:pb-0 md:pt-28\" \n    style=\"background-color: var(--wp--preset--color--pink-light);\"\n>\n    <div class=\"max-w-screen-xl mx-auto flex flex-col lg:flex-row items-start justify-between gap-4\">\n        <div class=\"flex-1 space-y-6 text-left py-0 lg:py-28\">\n\n            <!-- Hero Heading -->\n                            <h1 class=\"text-black text-left\">\n                    Recursos                <\/h1>\n            \n            <!-- Description -->\n                            <div class=\"text-black text-lg md:text-xl leading-normal text-left mb-10\">\n                    Nos encanta compartir recursos \u00fatiles con el p\u00fablico.                <\/div>\n            \n            <!-- Filter Component -->\n            <div>\n                \n<!-- AlpineJS Filter Component -->\n<div x-data=\"resourcesFilter()\">\n\n    <!-- Filter Form -->\n    <form class=\"flex flex-col items-start gap-6\" @submit.prevent=\"updateResults\">\n\n        <!-- Filter: Resource Category -->\n        <div class=\"flex flex-col md:flex-row gap-4 md:items-center\">\n            <label for=\"language_select\" class=\"font-extrabold text-black\">\n                Filtrar por temas:            <\/label>\n\n            <!-- Category Buttons -->\n            <div class=\"flex flex-row flex-wrap gap-2 md:gap-4\">\n                                    <div class=\"flex relative\">\n\n                        <!-- Hidden Radio Button -->\n                        <input\n                            type=\"radio\"\n                            id=\"all\"\n                            name=\"resource_category\"\n                            value=\"all\"\n                            class=\"absolute opacity-0 peer\"\n                            x-model=\"filters.category\"\n                            @change=\"updateResults()\"\n                        \/>\n\n                        <!-- Styled Label -->\n                        <label\n                            for=\"all\"\n                            class=\"select-none cursor-pointer rounded-full border border-black py-2 px-3 md:py-[10px] md:px-[18px] font-medium text-black transition-colors duration-200 ease-in-out\n                                   hover:bg-white \n                                   peer-checked:bg-primary \n                                   peer-checked:hover:bg-primary \n                                   peer-checked:text-white \n                                   peer-checked:border-primary \n                                   peer-focus:ring-2 \n                                   peer-focus:ring-blue-500 \n                                   peer-focus:ring-offset-2\"\n                        >\n                            Todos                        <\/label>\n                    <\/div>\n                                    <div class=\"flex relative\">\n\n                        <!-- Hidden Radio Button -->\n                        <input\n                            type=\"radio\"\n                            id=\"publicaciones\"\n                            name=\"resource_category\"\n                            value=\"publicaciones\"\n                            class=\"absolute opacity-0 peer\"\n                            x-model=\"filters.category\"\n                            @change=\"updateResults()\"\n                        \/>\n\n                        <!-- Styled Label -->\n                        <label\n                            for=\"publicaciones\"\n                            class=\"select-none cursor-pointer rounded-full border border-black py-2 px-3 md:py-[10px] md:px-[18px] font-medium text-black transition-colors duration-200 ease-in-out\n                                   hover:bg-white \n                                   peer-checked:bg-primary \n                                   peer-checked:hover:bg-primary \n                                   peer-checked:text-white \n                                   peer-checked:border-primary \n                                   peer-focus:ring-2 \n                                   peer-focus:ring-blue-500 \n                                   peer-focus:ring-offset-2\"\n                        >\n                            Publicaciones                        <\/label>\n                    <\/div>\n                                    <div class=\"flex relative\">\n\n                        <!-- Hidden Radio Button -->\n                        <input\n                            type=\"radio\"\n                            id=\"ficha\"\n                            name=\"resource_category\"\n                            value=\"ficha\"\n                            class=\"absolute opacity-0 peer\"\n                            x-model=\"filters.category\"\n                            @change=\"updateResults()\"\n                        \/>\n\n                        <!-- Styled Label -->\n                        <label\n                            for=\"ficha\"\n                            class=\"select-none cursor-pointer rounded-full border border-black py-2 px-3 md:py-[10px] md:px-[18px] font-medium text-black transition-colors duration-200 ease-in-out\n                                   hover:bg-white \n                                   peer-checked:bg-primary \n                                   peer-checked:hover:bg-primary \n                                   peer-checked:text-white \n                                   peer-checked:border-primary \n                                   peer-focus:ring-2 \n                                   peer-focus:ring-blue-500 \n                                   peer-focus:ring-offset-2\"\n                        >\n                            Fichas                        <\/label>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n    <\/form>\n<\/div>\n\n<!-- AlpineJS Logic -->\n<script>\nfunction resourcesFilter() {\n    return {\n        \/\/ Reactive filter state\n        filters: {\n            category: 'all', \/\/ default category\n        },\n\n        \/**\n         * Initialize component:\n         * - Prefills filters from URL query parameters\n         * - Loads results on page load\n         * - Listens for global reset event\n         *\/\n        init() {\n            const urlParams = new URLSearchParams(window.location.search);\n            this.filters.category = urlParams.get('category') || 'all';\n\n            \/\/ Listen for a global reset event to clear filters\n            window.addEventListener('filters-reset', () => this.reset());\n\n            \/\/ Use setTimeout to ensure all components are initialized before dispatching event\n            setTimeout(() => {\n                this.updateResults();\n            }, 0);\n        },\n\n        \/**\n         * Reset filters to defaults and refresh results\n         *\/\n        reset() {\n            this.filters.category = 'all';\n            this.updateResults();\n        },\n\n        \/**\n         * Update results when filters change:\n         * - Build query object with active filters\n         * - Update browser URL without reload\n         * - Emit global event for results component\n         *\/\n        updateResults() {\n            const activeFilters = {};\n\n            if (this.filters.category) {\n                activeFilters.category = this.filters.category;\n            }\n\n            \/\/ Update browser URL (no reload)\n            const queryString = new URLSearchParams(activeFilters).toString();\n            history.replaceState(null, '', `${window.location.pathname}${queryString ? '?' + queryString : ''}`);\n\n            \/\/ Dispatch event to other Alpine components\n            window.dispatchEvent(new CustomEvent('filters-changed', { detail: activeFilters }));\n        }\n    }\n}\n<\/script>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- Featured Resource Section -->\n\n<!-- Explore (Feed) Section -->\n<section id=\"resources-feed\" class=\"bg-white w-full px-4 sm:px-8 md:px-16 py-20 sm:py-24 md:py-28\">\n    <div class=\"max-w-screen-xl mx-auto flex flex-col gap-4\">\n\n        <!-- Section Heading -->\n                    <h2 class=\"text-black text-left mb-2\">\n                Explora los recursos            <\/h2>\n        \n        <!-- Feed Template -->\n        \n<div \n    x-data=\"resourcesResults()\" \n    x-init=\"init()\" \n    @filters-changed.window=\"updateFilters($event.detail)\"\n    id=\"resources-feed\"\n    data-language=\"es\"\n>\n    <!-- Loader -->\n    <div \n        x-show=\"loading\" \n        x-transition.opacity \n        class=\"flex justify-center items-center py-6\"\n    >\n        <svg class=\"animate-spin h-8 w-8 text-gray-600\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n            <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"><\/circle>\n            <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8v8H4z\"><\/path>\n        <\/svg>\n    <\/div>\n\n    <!-- No results -->\n    <div \n        x-show=\"!loading &#038;&#038; resources.length === 0\" \n        x-transition.opacity \n        class=\"flex flex-col items-center gap-4 text-center py-6 text-black\"\n    >\n        No se han encontrado recursos.\n        <button \n            @click=\"resetFilters\"\n            class=\"inline-block w-fit px-4 py-2 bg-black text-white rounded-lg hover:bg-primary transition cursor-pointer\"\n        >\n            Restablecer filtros        <\/button>\n    <\/div>\n\n    <!-- Results Grid -->\n    <template x-if=\"resources.length\">\n        <div class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-12\">\n            <template x-for=\"resource in resources\" :key=\"resource.id\">\n                <a \n                    :href=\"resource.link\" \n                    class=\"block overflow-hidden transition-transform transform group\"\n                    :aria-label=\"resource.title\"\n                >\n                    <div role=\"article\">\n\n                        <!-- Thumbnail -->\n                        <template x-if=\"resource.thumbnail\">\n                            <div class=\"w-full h-full rounded-lg overflow-hidden mb-6 lg:mb-8\">\n                                <img \n                                    :src=\"resource.thumbnail\" \n                                    :alt=\"resource.title\" \n                                    class=\"w-full h-full md:h-80 lg:h-[524px] object-cover transition-transform duration-300 group-hover:scale-110\"\n                                \/>\n                            <\/div>\n                        <\/template>\n\n                        <div class=\"flex flex-col items-start gap-4\">\n                            <!-- Categories + Date -->\n                            <div class=\"flex flex-row items-center justify-start gap-4\">\n                                <template x-for=\"cat in resource.categories\" :key=\"cat.id\">\n                                    <span \n                                        class=\"font-epilogue font-semibold text-black text-xs tracking-widest uppercase rounded-sm bg-pink-soft pt-2 pr-2 pb-1 pl-2\"\n                                        x-text=\"cat.name\"\n                                    ><\/span>\n                                <\/template>\n                                <span \n                                    class=\"font-epilogue font-semibold text-black text-xs tracking-widest uppercase\"\n                                    x-text=\"new Date(resource.date).toLocaleDateString('es', { year: 'numeric', month: 'short', day: 'numeric' })\"\n                                ><\/span>\n                            <\/div>\n\n                            <!-- Title + Arrow -->\n                            <div class=\"flex flex-row items-start justify-between gap-4\">\n                                <h3 \n                                    class=\"mb-2 text-2xl font-medium text-black text-left\"\n                                    x-text=\"resource.title\"\n                                ><\/h3>\n\n                                <span class=\"shrink-0 flex items-center justify-center w-8 h-8 pl-[2px] rounded-full border-[1.5px] border-black group-hover:bg-black group-hover:text-white transition-colors duration-300\">\n                                    <svg width=\"11\" height=\"18\" viewBox=\"0 0 11 18\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                        <path d=\"M1.33338 1L9.33337 9L1.33338 17\" stroke=\"currentColor\" stroke-width=\"1.5\"\/>\n                                    <\/svg>\n                                <\/span>\n                            <\/div>\n\n                            <!-- Excerpt -->\n                            <p \n                                class=\"text-black text-left font-normal mb-3\"\n                                x-text=\"resource.excerpt\"\n                            ><\/p>\n                        <\/div>\n                    <\/div>\n                <\/a>\n            <\/template>\n        <\/div>\n    <\/template>\n\n    <!-- Load More Button -->\n    <div \n        x-show=\"hasMore &#038;&#038; !loading &#038;&#038; resources.length\" \n        class=\"flex justify-center mt-8\"\n    >\n        <button\n            @click=\"loadMore\"\n            class=\"bg-black text-white cursor-pointer rounded-md px-6 py-3 font-medium no-underline transition-colors duration-300 ease-in-out hover:bg-primary hover:text-white text-sm md:text-base\"\n        >\n            Cargar m\u00e1s        <\/button>\n    <\/div>\n<\/div>\n\n<script>\nfunction resourcesResults() {\n    return {\n        \/\/ Reactive state\n        resources: [],          \/\/ Array of fetched resources\n        filters: { category: 'all' }, \/\/ Active filters\n        loading: false,         \/\/ Loading state\n        page: 1,\n        per_page: 9,\n        hasMore: true,\n        hasUserInteracted: false,\n        language: '',           \/\/ Current language code\n\n        \/**\n         * Initialize component\n         * - Wait for filters-changed event from filter component\n         * - Filter component will dispatch on init, triggering initial load\n         *\/\n        init() {\n            \/\/ Get language from data attribute on the root element\n            this.language = this.$el?.dataset?.language || 'en';\n            \/\/ Wait for filters-changed event from filter component\n            \/\/ Filter component dispatches this event on init with a setTimeout(0)\n        },\n\n        \/**\n         * Fetch resources from REST API\n         * @param {boolean} append - If true, append new results instead of replacing\n         *\/\n        async loadResources(append = false) {\n            this.loading = true;\n\n            \/\/ Build query parameters\n            const params = new URLSearchParams({\n                page: this.page,\n                per_page: this.per_page,\n                language: this.language,\n            });\n\n            if (this.filters.category) {\n                params.append('category', this.filters.category);\n            }\n\n            try {\n                const res = await fetch(`\/wp-json\/gmsh\/v1\/resources?${params.toString()}`);\n                const data = await res.json();\n                const resources = Array.isArray(data.resources) ? data.resources : [];\n\n                \/\/ Disable load more if fewer results than per_page\n                this.hasMore = resources.length === this.per_page;\n\n                \/\/ Merge or replace results\n                this.resources = append ? [...this.resources, ...resources] : resources;\n\n                \/\/ Smooth scroll to feed after filtering\n                if (!append && this.hasUserInteracted) {\n                    const feedSection = document.querySelector('#resources-feed');\n                    if (feedSection) {\n                        const yOffset = -100; \/\/ adjust for sticky header\n                        const y = feedSection.getBoundingClientRect().top + window.pageYOffset + yOffset;\n                        window.scrollTo({ top: y, behavior: 'smooth' });\n                    }\n                }\n\n            } catch (error) {\n                console.error('Error fetching resources:', error);\n                if (!append) this.resources = [];\n            } finally {\n                this.loading = false;\n            }\n        },\n\n        \/**\n         * Update filters when receiving a global event from the filter form\n         *\/\n        updateFilters(newFilters) {\n            this.filters = { ...this.filters, ...newFilters };\n            this.page = 1;\n            this.hasMore = true;\n            this.hasUserInteracted = true;\n            this.loadResources();\n        },\n\n        \/**\n         * Load next page of results\n         *\/\n        loadMore() {\n            if (!this.hasMore || this.loading) return;\n            this.page++;\n            this.loadResources(true);\n        },\n\n        \/**\n         * Reset all filters and reload\n         *\/\n        resetFilters() {\n            this.filters = { category: 'all' };\n            this.page = 1;\n            this.hasMore = true;\n            this.hasUserInteracted = true;\n            this.loadResources();\n            window.dispatchEvent(new CustomEvent('filters-reset'));\n        }\n    }\n}\n<\/script>\n    <\/div>\n<\/section>\n\n\n<section aria-label=\"Call to Action\" class=\"cta-section py-14 md:py-28\" style=\"background-color: var(--wp--preset--color--pink-primary);\">\n    <div class=\"container mx-auto px-4 sm:px-8 md:px-16\">\n        <div class=\"max-w-3xl mx-auto flex flex-col items-center text-center\">\n                            <h2 class=\"text-black mb-3\">\n                    \u00bfTienes preguntas?  <span>\u00a1Estamos aqu\u00ed para ayudarte!<\/span>                <\/h2>\n            \n                            <div class=\"text-[16px] md:text-[20px] mx-auto leading-normal mb-6 text-black\">\n                    Utiliza nuestra b\u00fasqueda por chat para hacer cualquier pregunta en cualquiera de los idiomas admitidos.                <\/div>\n            \n            <div class=\"flex justify-center\">\n                                    <div class=\"flex justify-start\">\n                        <a href=\"https:\/\/gmsh.ca\/contact\/\"\n                            class=\"bg-black text-white rounded-md px-6 py-3 font-medium no-underline transition-colors duration-300 ease-in-out hover:bg-primary hover:text-white text-sm md:text-base conversational-search-trigger\">\n                            Haz una pregunta                        <\/a>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n<section aria-labelledby=\"providers-heading\" class=\"bg-Color-Scheme-1-Background py-14 px-4 sm:px-8 md:px-16\">\n    <div class=\"max-w-screen-xl mx-auto space-y-16\">\n\n        <div class=\"text-left max-w-[100%] md:max-w-[810px] space-y-6\">\n                            <h2 class=\"mb-3 md:mb-6\">\n                    <span>Herramientas<\/span> adicionales                <\/h2>\n            \n                            <div class=\"text-[16px] md:text-[20px] text-black font-normal leading-relaxed\">\n                    Explora nuestro calendario de eventos, el buscador de servicios locales y una amplia selecci\u00f3n de recursos y publicaciones dise\u00f1ados para mantenerte informado y conectado.                <\/div>\n                    <\/div>\n\n                    <div class=\"grid gap-x-12 md:grid-cols-3\">\n                                    <div class=\"group block\">\n                        <article class=\"flex flex-col space-y-6 text-left relative\">\n\n                                                            <img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"281\" src=\"https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/GMSH-Icons-07-2-300x281.png\" class=\"w-[176px] h-[177px] object-contain\" alt=\"\" srcset=\"https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/GMSH-Icons-07-2-300x281.png 300w, https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/GMSH-Icons-07-2.png 309w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>                            \n                                                            <h3 class=\"text-2xl text-black mb-3 font-medium\">\n                                    Calendario de actos                                <\/h3>\n                            \n                                                            <div class=\"text-base text-black mb-3\">\n                                    Explora los actos presenciales y en l\u00ednea que se celebran en Ontario.                                <\/div>\n                            \n                                                            <div>\n                                    <a href=\"https:\/\/gmsh.ca\/events-section\/\"\n                                        class=\" text-black pb-[2px] border-b border-transparent group-hover:border-black transition font-medium after:absolute after:inset-0 cursor-pointer\">\n                                        Ver eventos                                    <\/a>\n                                <\/div>\n                                                    <\/article>\n                    <\/div>\n                                    <div class=\"group block\">\n                        <article class=\"flex flex-col space-y-6 text-left relative\">\n\n                                                            <img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"200\" src=\"https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/services-300x200.webp\" class=\"w-[176px] h-[177px] object-contain\" alt=\"\" srcset=\"https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/services-300x200.webp 300w, https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/services-1024x683.webp 1024w, https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/services-768x512.webp 768w, https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/services.webp 1536w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>                            \n                                                            <h3 class=\"text-2xl text-black mb-3 font-medium\">\n                                    Buscar servicios                                <\/h3>\n                            \n                                                            <div class=\"text-base text-black mb-3\">\n                                    Descubre opciones cercanas o en l\u00ednea para pruebas, PrEP, atenci\u00f3n del VIH y apoyo por consumo de sustancias.                                <\/div>\n                            \n                                                            <div>\n                                    <a href=\"https:\/\/gmsh.ca\/find-services\/\"\n                                        class=\" text-black pb-[2px] border-b border-transparent group-hover:border-black transition font-medium after:absolute after:inset-0 cursor-pointer\">\n                                        Buscar servicios locales                                    <\/a>\n                                <\/div>\n                                                    <\/article>\n                    <\/div>\n                                    <div class=\"group block\">\n                        <article class=\"flex flex-col space-y-6 text-left relative\">\n\n                                                            <img loading=\"lazy\" decoding=\"async\" width=\"177\" height=\"177\" src=\"https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/GMSH-Icons-07-1.png\" class=\"w-[176px] h-[177px] object-contain\" alt=\"\" srcset=\"https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/GMSH-Icons-07-1.png 177w, https:\/\/gmsh.ca\/wp-content\/uploads\/2025\/09\/GMSH-Icons-07-1-150x150.png 150w\" sizes=\"auto, (max-width: 177px) 100vw, 177px\" \/>                            \n                                                            <h3 class=\"text-2xl text-black mb-3 font-medium\">\n                                    Recursos                                <\/h3>\n                            \n                                                            <div class=\"text-base text-black mb-3\">\n                                    Consulta nuestras publicaciones y recursos cient\u00edficamente revisados para obtener informaci\u00f3n sanitaria fiable y actualizada.                                <\/div>\n                            \n                                                            <div>\n                                    <a href=\"https:\/\/gmsh.ca\/resources\/\"\n                                        class=\" text-black pb-[2px] border-b border-transparent group-hover:border-black transition font-medium after:absolute after:inset-0 cursor-pointer\">\n                                        Explora los recursos                                    <\/a>\n                                <\/div>\n                                                    <\/article>\n                    <\/div>\n                            <\/div>\n            <\/div>\n<\/section>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1835","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Recursos - GMSH.ca<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gmsh.ca\/es\/recursos\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recursos - GMSH.ca\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gmsh.ca\/es\/recursos\/\" \/>\n<meta property=\"og:site_name\" content=\"GMSH.ca\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/GMSHAlliance\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-30T15:17:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gmsh.ca\/wp-content\/uploads\/2026\/04\/gmsh-social-share.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@gmshalliance\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/recursos\\\/\",\"url\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/recursos\\\/\",\"name\":\"Recursos - GMSH.ca\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/#website\"},\"datePublished\":\"2025-05-22T18:07:07+00:00\",\"dateModified\":\"2026-01-30T15:17:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/recursos\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gmsh.ca\\\/es\\\/recursos\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/recursos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recursos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/\",\"name\":\"Gay Men\u2019s Sexual Health Alliance (GMSH)\",\"description\":\"Empowering Connection and Well-being for 2SGBTQ+ Men\",\"publisher\":{\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/#organization\"},\"alternateName\":\"GMSH.ca\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/#organization\",\"name\":\"Gay Men\u2019s Sexual Health Alliance (GMSH)\",\"url\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/gmsh.ca\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/gmsh-favicon.png\",\"contentUrl\":\"https:\\\/\\\/gmsh.ca\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/gmsh-favicon.png\",\"width\":340,\"height\":340,\"caption\":\"Gay Men\u2019s Sexual Health Alliance (GMSH)\"},\"image\":{\"@id\":\"https:\\\/\\\/gmsh.ca\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/GMSHAlliance\",\"https:\\\/\\\/x.com\\\/gmshalliance\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/gay-men-s-sexual-health-alliance\\\/?originalSubdomain=ca\",\"https:\\\/\\\/www.instagram.com\\\/gaymenssexualhealthalliance\\\/\",\"https:\\\/\\\/www.youtube.com\\\/gaymenssexualhealthalliance\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recursos - GMSH.ca","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:\/\/gmsh.ca\/es\/recursos\/","og_locale":"es_ES","og_type":"article","og_title":"Recursos - GMSH.ca","og_url":"https:\/\/gmsh.ca\/es\/recursos\/","og_site_name":"GMSH.ca","article_publisher":"https:\/\/www.facebook.com\/GMSHAlliance","article_modified_time":"2026-01-30T15:17:37+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/gmsh.ca\/wp-content\/uploads\/2026\/04\/gmsh-social-share.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@gmshalliance","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/gmsh.ca\/es\/recursos\/","url":"https:\/\/gmsh.ca\/es\/recursos\/","name":"Recursos - GMSH.ca","isPartOf":{"@id":"https:\/\/gmsh.ca\/es\/#website"},"datePublished":"2025-05-22T18:07:07+00:00","dateModified":"2026-01-30T15:17:37+00:00","breadcrumb":{"@id":"https:\/\/gmsh.ca\/es\/recursos\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gmsh.ca\/es\/recursos\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gmsh.ca\/es\/recursos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/gmsh.ca\/es\/"},{"@type":"ListItem","position":2,"name":"Recursos"}]},{"@type":"WebSite","@id":"https:\/\/gmsh.ca\/es\/#website","url":"https:\/\/gmsh.ca\/es\/","name":"Gay Men\u2019s Sexual Health Alliance (GMSH)","description":"Empowering Connection and Well-being for 2SGBTQ+ Men","publisher":{"@id":"https:\/\/gmsh.ca\/es\/#organization"},"alternateName":"GMSH.ca","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gmsh.ca\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/gmsh.ca\/es\/#organization","name":"Gay Men\u2019s Sexual Health Alliance (GMSH)","url":"https:\/\/gmsh.ca\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/gmsh.ca\/es\/#\/schema\/logo\/image\/","url":"https:\/\/gmsh.ca\/wp-content\/uploads\/2026\/01\/gmsh-favicon.png","contentUrl":"https:\/\/gmsh.ca\/wp-content\/uploads\/2026\/01\/gmsh-favicon.png","width":340,"height":340,"caption":"Gay Men\u2019s Sexual Health Alliance (GMSH)"},"image":{"@id":"https:\/\/gmsh.ca\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/GMSHAlliance","https:\/\/x.com\/gmshalliance","https:\/\/www.linkedin.com\/company\/gay-men-s-sexual-health-alliance\/?originalSubdomain=ca","https:\/\/www.instagram.com\/gaymenssexualhealthalliance\/","https:\/\/www.youtube.com\/gaymenssexualhealthalliance"]}]}},"_links":{"self":[{"href":"https:\/\/gmsh.ca\/es\/wp-json\/wp\/v2\/pages\/1835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gmsh.ca\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gmsh.ca\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gmsh.ca\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gmsh.ca\/es\/wp-json\/wp\/v2\/comments?post=1835"}],"version-history":[{"count":0,"href":"https:\/\/gmsh.ca\/es\/wp-json\/wp\/v2\/pages\/1835\/revisions"}],"wp:attachment":[{"href":"https:\/\/gmsh.ca\/es\/wp-json\/wp\/v2\/media?parent=1835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}