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

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"

lunes, 20 de febrero de 2017

WordPress: tamaño máximo se archivos

Existen varios tutoriales de cómo aumentar el tamaño máximo de un archivo al momento de subirlo a WordPress. A veces alguno de ellos nos recomiendan desactivar un plugin y no sabemos cuál. Les cuento este caso particular.

Posible mensaje de error

En la página estádar de WordPress para subir medios:

"Error HTTP"



En un página custom de PHP:

Request Entity Too Large

The requested resource
/index.php
does not allow request data with GET requests, or the amount of data provided in the request exceeds the capacity limit.

Additionally, a 413 Request Entity Too Large error was encountered while trying to use an ErrorDocument to handle the request.


Visualizar el tamaño actual

Con la instrucción phpinfo() pueden ver la configuración a nivel de PHP:



Valores a verificar:
  • memory_limit 
  • post_max_size 
  • upload_max_filesize
  • max_execution_time 
  • file_uploads 

Con wp_max_upload_size() pueden ver el valor a nivel de WordPress eb bytes. Más información en: https://codex.wordpress.org/Function_Reference/wp_max_upload_size


Primeras soluciones

Antes de hacer cosas raras, vean estos enlaces que nos muestran las soluciones más comunes:




Mi caso particular

En mi caso particular, tenía activado el Firewall del plugin All In One WP Security:



La solución es agregar una regla particular como se menciona en este post:



#AIOWPS_BASIC_HTACCESS_RULES_START
<Files .htaccess>
order allow,deny
deny from all
</Files>
ServerSignature Off
LimitRequestBody 20480000
<Files wp-config.php>
order allow,deny
deny from all
</Files>
#AIOWPS_BASIC_HTACCESS_RULES_END



Espero haber sido útil, hasta la próxima!

viernes, 19 de agosto de 2016

WordPress - Query con custom fields anidados

El siguiente es un ejemplo de de query combinando dos campos personalizados con una relación AND:

    $argsFabrica = array( 
        'post_type' => 'maestro', 
        'meta_key' => 'valor_certi',
        'orderby' => 'meta_value', 
        'order' => ASC,
        'meta_query' => array(
          'relation' => 'AND',
           array(
            'key' => 'tabla_certi',
            'compare' => '=',
            'value' => 'FA'
             ),
           array(
            'key' => 'solicitantes_autorizados_certi',
            'compare' => 'LIKE',
            'value' => get_post_meta( $post_id, 'pedido_titular', true )
             ),
),
        );

  $fabricas = get_posts( $argsFabrica );



miércoles, 15 de junio de 2016

WordPress: archive page y Custom Post Type UI

Escenario

Creamos un custom post type (plugin Custom Post Type UI), pero cuando vamos a su página de archivos, encontramos un error 404:



En un primer intento de solución, vamos a la configuración del tipo de contenido y agregamos esta opción:



Pero sigue sin funcionar.

Sólo queda un paso más, ingresar a la opción de enlaces permanentes. No es necesario grabar.



Con eso queda solucionado el problema.

WordPress: ¿Cómo crear un formulario personalizado? - Parte 5 (Adjuntar archivos)

En esta quinta parte de esta serie de artículos (ver parte 4) veremos cómo subir archivos a la librería de medios y adjuntarlos al post que hemos creado. Luego los enviaremos por email.

Paso 1

Agregamos los tags para subir los archivos:

    <?php wp_nonce_field( 'archivoAutorizacion', 'archivoAutorizacion_nonce' ); ?>
    <p>Autorización<br/><input type="file" name="archivoAutorizacion" id="archivoAutorizacion" multiple="false" /></p><br/>
    <?php wp_nonce_field( 'archivoContrato', 'archivoContrato_nonce' ); ?>
    <p>Contrato<br/><input type="file" name="archivoContrato" id="archivoContrato" multiple="false" /></p><br/>


Nuestro formulario se verá así:



Paso 2

Agregamos el código para subir los dos archivos:


if ( isset( $_POST['archivoAutorizacion_nonce'] ) && wp_verify_nonce( $_POST['archivoAutorizacion_nonce'], 'archivoAutorizacion' ) && 
            isset( $_POST['archivoContrato_nonce'] ) && wp_verify_nonce( $_POST['archivoContrato_nonce'], 'archivoContrato' ) ) {
 
  require_once( ABSPATH . 'wp-admin/includes/image.php' );
  require_once( ABSPATH . 'wp-admin/includes/file.php' );
  require_once( ABSPATH . 'wp-admin/includes/media.php' );
    
    $attachmentAutorizacion_id = media_handle_upload( 'archivoAutorizacion', $post_id );
    if ( is_wp_error( $attachmentAutorizacion_id ) ) {
    autorizacion_response("ERROR", "No se ha podido cargar al archivo de autorización: <br/><br/>" . $attachmentAutorizacion_id->get_error_message());
    } 
    
    else {

      $attachmentContrato_id = media_handle_upload( 'archivoContrato', $post_id );
      if ( is_wp_error( $attachmentContrato_id ) ) {
          autorizacion_response("ERROR", "No se ha podido cargar al archivo de contrato: <br/><br/>" . $attachmentContrato_id->get_error_message());
      } 
      

Paso 3

Código para enviar los archivos por email.

        $adjunto1 = ABSPATH . parse_url(wp_get_attachment_url($attachmentAutorizacion_id))['path'];
        $adjunto1 = str_replace("//", "/",$adjunto1);
          
        $adjunto2 = ABSPATH . parse_url(wp_get_attachment_url($attachmentContrato_id))['path'];
        $adjunto2 = str_replace("//", "/",$adjunto2);
          
        $adjuntos = array($adjunto1, $adjunto2);
        
        $sent = wp_mail($to, utf8_decode($subject), $message, $cabeceras, $adjuntos);



Posibles errores

File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.

Este error puede darse cuando omitimos especificar enctype="multipart/form-data" en el tag FORM:

<form class="form_certi" id="nueva_autorizacion" enctype="multipart/form-data" action="<?php the_permalink(); ?>" method="post">