{"id":15180490,"url":"https://github.com/rogertm/twenty-em","last_synced_at":"2025-10-01T21:30:25.513Z","repository":{"id":54625891,"uuid":"88766474","full_name":"rogertm/twenty-em","owner":"rogertm","description":"WordPress Framework","archived":true,"fork":false,"pushed_at":"2021-02-07T13:48:03.000Z","size":13142,"stargazers_count":8,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-15T06:02:57.787Z","etag":null,"topics":["framework","theme","theme-development","theme-framework","wordpress","wordpress-framework","wordpress-theme"],"latest_commit_sha":null,"homepage":"https://themingisprose.com/twenty-em/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rogertm.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-19T16:25:34.000Z","updated_at":"2023-01-28T10:41:50.000Z","dependencies_parsed_at":"2022-08-13T22:00:24.194Z","dependency_job_id":null,"html_url":"https://github.com/rogertm/twenty-em","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogertm%2Ftwenty-em","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogertm%2Ftwenty-em/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogertm%2Ftwenty-em/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogertm%2Ftwenty-em/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rogertm","download_url":"https://codeload.github.com/rogertm/twenty-em/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234897368,"owners_count":18903646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","theme","theme-development","theme-framework","wordpress","wordpress-framework","wordpress-theme"],"created_at":"2024-09-27T16:20:54.605Z","updated_at":"2025-10-01T21:30:20.136Z","avatar_url":"https://github.com/rogertm.png","language":"PHP","funding_links":["https://paypal.me/themingisprose"],"categories":[],"sub_categories":[],"readme":"[![Latest Stable Version](https://poser.pugx.org/rogertm/twenty-em/version)](https://packagist.org/packages/rogertm/twenty-em)\n[![Latest Unstable Version](https://poser.pugx.org/rogertm/twenty-em/v/unstable)](//packagist.org/packages/rogertm/twenty-em)\n[![Total Downloads](https://poser.pugx.org/rogertm/twenty-em/downloads)](https://packagist.org/packages/rogertm/twenty-em)\n[![Build Status](https://travis-ci.org/rogertm/twenty-em.svg?branch=master)](https://travis-ci.org/rogertm/twenty-em)\n[![License](https://poser.pugx.org/rogertm/twenty-em/license)](https://packagist.org/packages/rogertm/twenty-em)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/rogertm/twenty-em/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/rogertm/twenty-em/?branch=master)\n[![Build Status](https://scrutinizer-ci.com/g/rogertm/twenty-em/badges/build.png?b=master)](https://scrutinizer-ci.com/g/rogertm/twenty-em/build-status/master)\n[![Code Intelligence Status](https://scrutinizer-ci.com/g/rogertm/twenty-em/badges/code-intelligence.svg?b=master)](https://scrutinizer-ci.com/code-intelligence)\n[![CodeFactor](https://www.codefactor.io/repository/github/rogertm/twenty-em/badge)](https://www.codefactor.io/repository/github/rogertm/twenty-em)\n\n# Twenty'em WordPress Framework\n\n## ¿Qué es Twenty'em?\nTwenty'em es un theme/framework para WordPress creado específicamente para el desarrollo de Child Themes, que gracias a la gran variedad de opciones de configuración que posee y su API de Desarollo, puede ser usado tanto para proyectos sencillos como para proyectos de gran envergadura.\n\n## Instalación\n### Manual\nTwenty'em se instala como cualquier otro theme de WordPress. Para ello debes descargar la [última versión](https://github.com/rogertm/twenty-em/releases/latest), descompactar el archivo `.zip` y copiar su contenido en el directorio `/wp-content/themes/` de tu instalación de WordPress. O subirlo usando el instalador de themes de WordPress.\n### Instalar vía Git\nPuedes clonar el repositorio directamente de GitHub:\n```bash\n$ cd /path/to/your/wordpress-site/wp-content/themes/\n$ git clone https://github.com/rogertm/twenty-em.git\n```\n### Instalar vía Composer\n```bash\n$ cd /path/to/your/wordpress-site/\n$ composer require rogertm/twenty-em:^1.0\n```\nO puedes instalar directamente [Twenty'em Child Theme](https://github.com/rogertm/twenty-em-child) que automáticamente instalará Twenty'em.\n```bash\n$ cd /path/to/your/wordpress-site/\n$ composer require rogertm/twenty-em-child:^1.0\n```\n\n## Dependencias\nTwenty'em requiere de algunas dependencias, para ello debes instalarlas vía `npm`. Debes tener [Node.js](https://nodejs.org/es/) instalado previamente en tu ordenador.\nEjecuta los siguientes comandos desde tu CLI:\n```bash\n$ cd /path/to/your/wordpress-site/wp-content/themes/twenty-em/\n$ npm install\n$ gulp\n```\nEn caso de usar un [Child Theme](https://github.com/rogertm/twenty-em-child) debes tambien desplegar las tareas necesarias para compilar los archivos `scss` del Child Theme. Desde el mismo direcotrio de `twenty-em` corres el siguiente comando:\n```\n$ gulp child\n```\nTambién puedes ejecutar `gulp watch` y `gulp watch:child` para complilar los archivos `scss` y `js` miesntras trabajas.\n_Este comando depende en gran medida de las variables de entorno. Ver más abajo._\n\n## Variables de entorno (.env)\nPara el mejor funcionamiento de las tareas que se ejecuntan con el comando `gulp`, se deben definir las variables de entorno necesarias en un archivo llamado `.env`.\n\nVariable Name | Possibles Values | Description\n--------------|------------------|------------\n`DEV_MODE`|`true`, `false` |Si se define como `false`, todos los archivos compilados serán minificados\n`CHILD_THEME_EXISTS`|`true`, `false` |Evaluar a `true` si hay un CHild Theme instalado\n`CHILD_THEME`|`../child-theme-dir` |Nombre del directorio del Child Theme (si el slash final)\n\n## Panel de Administración\n\nTwenty'em ofrece un **Panel de Administración** desde el que podrás configurar la estructura de tu sitio con un mínimo de esfuerzo.\n\nDesde este panel podrás acceder a la ayuda, donde esbozados rápidamente cómo accionar en cada caso y para qué sirve cada opción.\n\nEl manejo de este panel de administración es muy fácil e intuitivo, en caso de que cada panel de opciones tenga sub-opciones, que permitan varios comportamientos para un mismo módulo, entonces se elegirá el indicado accionando la pestaña que activará dicha sub-opción.\n\nUna vez configuradas todas las opciones, deberás hacer clic en **Guardar Cambios** para salvar toda la configuración que has hecho.\n\n## Administrador de Resplado\n\nUna vez hechas todas las configuraciones en el **Panel de Administración** de Twenty'em, podrás exportar un archivo `.txt` que luego podrás usar para importar dichas configuraciones en caso de que necesites restaurar todo el set de opciones. O incluso, configurar otro sitio hecho con Twenty'em.\n\nPara ello debes acceder a **Twenty'em \u003e Respaldo**, donde encontrarás nuestro **Administrador de Respaldo**, un asistente bien sencillo de usar.\n\n### Exportar\n\nPuedes exportar la configuración con el objetivo de restaurarla nuevamente, o copiarla en otro sitio. Si un Child Theme o Plugin hace un _merge_ de sus configuraciones en la opción `t_em_theme_options` de la tabla `wp_options` en la Base de Datos, esas opciones serán exportadas también en el mismo archivo `.txt`.\n\nLas opciones serán exportadas en un archivo denominado `t-em-backup-` seguido por la fecha y el tiempo en que ha sido exportado. Ej: `t-em-backup-Ymd-His.txt`.\n\n### Importar\n\nPuedes importar archivos previamente exportados, esto actualizará la opción `t_em_theme_options` en la tabla `wp_options` en la Base de Datos.\n\n**Importante**: Solo archivos generados a través del **Administrador de Respaldo** podrán ser importados nuevamente. **Esta acción no puede ser deshecha**.\n\n\n## Widgets, Templates y Shortcodes\n\nTwenty'em trae consigo de manera predeterminada una serie de elementos que te permitirán un mejor manejo del contenido dentro de tu proyecto.\n\n### [Widgets](https://themingisprose.com/twenty-em/doc/widgets/)\n\nAdemás de los widgets nativos de WordPress, Twenty'em trae nuevos widgets que mejorarán visual y estructuralmente tu proyecto, entre los que se encuentran Autores, Galería de Imágenes, Últimas Entradas, Entradas Populares, Comentarios y uno muy útil que permitirá a tus clientes o usuarios la Suscripción vía FeedBurner.\n\n### [Templates](https://themingisprose.com/twenty-em/doc/plantillas-para-paginas/)\n\nEn WordPress, los Templates o Plantillas de Páginas son archivos mediante los que puedes crear páginas, pero con características o comportamientos que difieren de una página estándar. Twenty'em ofrece un grupo de estas plantillas, entre las que se destacan, Archivo, Autores, Mapa del Sitio, entre otras.\n\n### [Shortcodes](https://themingisprose.com/twenty-em/doc/shortcodes/)\n\nLos shortcodes son pequeños macro códigos que se insertan en el editor de entradas, y ejecutan funciones creadas por los desarrolladores. Twenty'em tiene una serie de estos shortcodes mediante los que podrás dar formato a tus entradas. Alertas, Citas, Iconos, Botones, entre otros, que a su vez tienen múltiples opciones.\n\n## API de Desarrollo\n\nTwenty'em se basa fundamentalmente en el uso de Hooks, lo cual permite que el desarrollo con este Framework sea extremadamente flexible y escalable. Además brindamos una serie de funciones (tipo _Helpers_) que su objetivo es facilitar el trabajo de los desarrolladores, y por su puesto Variables, Constantes, etc…\n\n**Nota**: Actualmente estamos en proceso de documentar esta sección.\n\n## Licencia\n\nComo WordPress, **Twenty'em es un software de código libre y abierto y se distribuye bajo Licencia GPLv2 (o superior)**. Una copia de la licencia se puede encontrar en cada versión de Twenty'em, también incluimos una copia **no oficial** en español para usuarios hispanohablantes.\n\nAsimismo, cada software que se derive de Twenty'em (plugin, módulo, código, etc…) y se distribuya desde este sitio heredará dicha licencia.\n\n## Donar\nHemos trabajado durante varios años en el desarrollo de Twenty'em Framework y ahora lo compartimos contigo. Apreciamos cualquier contribución que nos quieras hacer y así poder mantener nuestro proyecto. Gracias.\n\n[Hacer una Donación](https://paypal.me/themingisprose)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogertm%2Ftwenty-em","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frogertm%2Ftwenty-em","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogertm%2Ftwenty-em/lists"}