WordPress

Compartiendo experiencias sobre la plataforma CMS más importante del mundo

BuddyPress

El increíble y fabuloso plugin de WordPress para crear redes sociales verticales

¿Cómo crear una RED SOCIAL?

Experiencias, ideas y materiales para llevar adelante tu próximo proyecto de creación de una red social

martes, 22 de agosto de 2017

Tips para mejorar velocidad de un sitio web

Paso 1 (compresión):

# BEGIN GZIP <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule> # END GZIP


Paso 2: (achicar imágenes)

Pueden reducir usando http://compresspng.com/es/ , http://compressjpeg.com/es/ o cualquier otra herramienta.

Paso 3 (caché del navegador)

## EXPIRES HEADER CACHING ##

<IfModule mod_expires.c>  ExpiresActive On  ExpiresByType image/jpg "access 1 year"  ExpiresByType image/jpeg "access 1 year"  ExpiresByType image/gif "access 1 year"  ExpiresByType image/png "access 1 year"  ExpiresByType text/css "access 1 month"  ExpiresByType application/pdf "access 1 month"  ExpiresByType application/javascript "access 1 month"  ExpiresByType application/x-javascript "access 1 month"  ExpiresByType application/x-shockwave-flash "access 1 month"  ExpiresByType image/x-icon "access 1 year"  ExpiresDefault "access 2 days"  </IfModule>  ## EXPIRES HEADER CACHING ##

A partir de acá hay que empezar a ver los detalles de cada caso. Buscar los cuellos de botella y trabajar a partir de eso. Estos gráficos ayudan:



También verificar errores de páginas no encontradas...

miércoles, 19 de abril de 2017

El mundo sigue apuntando a WordPress

El 27.8 % de la web está hecha en WordPress:




El 58.9 % de las webs que usan un CMS están hechas en WordPress:






jueves, 6 de abril de 2017

HTML: combo de selección multiple alternativo

En este breve artículo les muestro una alternativa al combo de selección múltiple estándar de HTML. ¿Por qué una alternativa? Porque el estándar requiere que el usuario presione la tecla CONTROL lo que lo hace poco usable.

Estándar


Alternativa
  • Usamos casillas de verificación
  • Se puede ocultar para que no ocupe lugar en pantalla

Visualmente se ve así antes de abrirlo:


Y así cuando está abierto:


Código en jsfiddle



Transcripción del código

HTML

<div>

  Hito:

  <input id='btnAbrirFiltro' type="button" value="Filtro múltiple" onclick="$('.contenedor').toggle();$('#btnFiltrar').toggle();$('#btnAbrirFiltro').toggle();$('#btnCerrarFiltro').toggle();">

  <input id='btnCerrarFiltro' type="button" value="Cerrar" style="display: none;" onclick="$('.contenedor').toggle();$('#btnFiltrar').toggle();$('#btnAbrirFiltro').toggle();$('#btnCerrarFiltro').toggle();">

  <input id='btnFiltrar' type="button" value="Filtrar" style="display: none;" onclick="obtenerSeleccionados()">

  <div class="contenedor" style="display: none;">
    <input id="cfh_1" type="checkbox" /> Hito 1
    <br />
    <input id="cfh_2" type="checkbox" /> Hito 2
    <br />
    <input id="cfh_3" type="checkbox" /> Hito 3
    <br />
    <input id="cfh_4" type="checkbox" /> Hito 4
    <br />
    <input id="cfh_5" type="checkbox" /> Hito 5
    <br />
    <input id="cfh_7" type="checkbox" /> Hito 6
    <br />
    <input id="cfh_8" type="checkbox" /> Hito 7
    <br />
    <input id="cfh_4567" type="checkbox" /> Hito 8
    <br />
    <input id="cfh_345" type="checkbox" /> Hito Implementación final del evento
    <br />
    <input id="cfh_45671" type="checkbox" /> Hito a8
    <br />
    <input id="cfh_45672" type="checkbox" /> Hito s8
    <br />
    <input id="cfh_45673" type="checkbox" /> Hito d8
    <br />
    <input id="cfh_45674" type="checkbox" /> Hito f8
    <br />
    <input id="cfh_45675" type="checkbox" /> Hito g8
    <br />
  </div>

</div>

Lorem ipsum dolor sit amet, libero nullam dolor, auctor consequat. Risus donec nunc nulla maecenas, at mattis, arcu tempor. Faucibus velit vitae arcu mauris, sem blandit elementum. Conubia pede interdum urna suspendisse eget. Vestibulum malesuada amet
ac vel ligula, leo aenean, ac ultrices nec class, consectetuer adipiscing massa in sint morbi justo, sit maecenas a sit. Enim molestie, porta enim, dolor suscipit sagittis, donec ornare sed aenean aliquet parturient blandit. Quisque nisl tempus arcu lobortis
massa quis, pede praesent nulla et eget sed, facilisi nunc elit erat. Volutpat mauris pellentesque magna aliquam dolor facilisi. Nec orci, nunc imperdiet feugiat. Erat est vestibulum nec et, eu eros tempus morbi netus, congue pellentesque vivamus, tellus
eleifend maecenas mus sodales blandit et, sed vulputate rhoncus lobortis amet id inceptos. Magna vestibulum elit vel aenean, aliquam praesent vestibulum sed fringilla amet volutpat, cras mauris suscipit pretium.

CSS

.contenedor {
  border: 1px solid grey;
  width: 200px;
  height: 200px;
  overflow-y: scroll;
  position: fixed;
  background: white;
  margin-top: 2px;
}

JAVASCRIPT

function obtenerSeleccionados() {
  var seleccionados = [];
  $('.contenedor input:checked').each(function() {
    seleccionados.push($(this).attr('id'));
  });
  alert(seleccionados);
}

martes, 28 de marzo de 2017

WordPress - Consulta "Empieza con"

Supongamos que queremos hacer una consulta filtrando aquellos posts que comienzan con una determinada cadena. No podemos usar el operador LIKE ya que WordPress agrega un % (comodín) al principio y al final del valor de comparación. Por lo tanto recurrimos a una expresión regular. Veamos este ejemplo:

    $argsCertificado = array( 
        'post_type' => 'proceso', 
      'numberposts' => 1000,
        'meta_key' => 'numero_de_certificado',
        'orderby' => 'meta_value', 
        'order' => DESC,
        'meta_query' => array(
          'key' => 'tipo_de_proceso',
          'compare' => 'REGEXP',
          'value' => '^Certif'
          )
        );

  $certificados = get_posts( $argsCertificado );

miércoles, 22 de marzo de 2017

Kodi - Limpieza de librería de videos

Si necesitan que la actualización de una biblioteca, limpie los archivos que borraron físicamente de su disco, pueden usar esta configuración en AdvancedSettings:

<advancedsettings>
<videolibrary>
<cleanonupdate>true</cleanonupdate>
</videolibrary>
</advancedsettings>

Kodi - AdvancedSettings en Windows 10 / Raspberry OSMC

Si necesitan editar el archivo AdvancedSettings de Kodi en Windows 10 pueden seguir los lineamientos de la wiki de Kodi en:


Si eso no funciona, pueden probar en este path:

C:\Users\tuUsuario\AppData\Local\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\userdata



Para el OSMC de Raspberry es:

/home/osmc/.kodi/userdata/advancedsettings.xml

lunes, 20 de marzo de 2017

Kodi - Actualizar la librería en forma remota

xbmc-send -a "UpdateLibrary(video)"

Resultado:

}

Fuente:

http://boshdirect.com/Blogs/Tech/set-xbmc-to-auto-update-library.html

Si además quieren evitarse el ingreso de usuario y contraseña del sistema en donde se encuentra instalado el Media Center, en mi caso una Raspberry, pueden hacer estos dos pasos:

Crean un archivo UpdateKodiLibrary.txt con el comando de actualización:

xbmc-send -a "UpdateLibrary(video)"

Luego crean un acceso directo de Windows que ejecute ese archivo:

"C:\Program Files\PuTTY\putty.exe" -ssh osmc@192.168.1.60 -pw osmc -m "C:\mis archivos\Kodi\Scripts\UpdateKodiLibrary.txt"