LesOlivex

Serveis informàtics



Tema hijo en wordpress

Category : Programación, Wordpress gen 27th, 2015

Creamos una carpeta en wp-content/themes/tema-hijo Añadimos nuestro functions.php que se sumara al del tema base Añadimos nuestro style.css que cogerá el del tema base:

/*
Theme Name: Tema hijo
Theme URI: -
Description: Tema derivado de Padre
Author: Eduardo Magrané
Author URI: -
Template: tema_padre
Version: 1.0
*/

@import url('../carpeta_padre/style.css');

#css_propio {
   border: 1px solid green;
}

* El Template: define el tema padre y debe ser el nombre del directorio que lo contiene.

Copiamos los archivos que queremos modificar como header.php a nuestro directorio

Recoger los campos personalizados de los posts en wordpress – post meta

Category : Programación, Wordpress gen 27th, 2015

Recoger los datos de los campos personalizados en los posts:

$datos = get_post_meta (get_the_ID(),array(), false);

if ( isset($datos['edad_de_los_hijos']) && ! empty($datos['fecha'][0]) ) {
   echo "<p><span class='info_taxonomia_dades_titol'>Edad de los niños: </span>"
       ."<span class='valor_fecha'>"
       .mysql2date(get_option('date_format'),$datos['fecha'][0], true)
       ."</span>"
       ."</p>";
   }

Recoger la información de los campos personalizados de una taxonomía en wordpress

Category : Programación, Wordpress gen 27th, 2015

Ejemplo sobre una taxonomía denominada where.

$slug_taxonomia_actual = get_query_var('where');
if ( $slug_taxonomia_actual ) {
   $taxonomia_actual = get_term_by('slug', $slug_taxonomia_actual,'where');
   $location = get_field('Location', 'where_'.$taxonomia_actual->term_id);
}

Presentar imagen aleatoria de un post en wordpress

Category : Programación, Wordpress gen 27th, 2015

Creamos shortcode de gallery con una sola imagen aleatoria sobre el post actual en single.php

// Presentar una sola imagen aleatoria del post

 $consulta_img = "SELECT ID FROM wp_posts 
    WHERE post_parent=".get_the_ID()." AND post_type like 'attachment' 
    ORDER BY RAND() LIMIT 1";

 $lista_imagenes = FALSE ;
 $resultado_img = $wpdb->get_results( $consulta_img );
 if ( count($resultado_img) != 0 ) $lista_imagenes = TRUE;

 if ( $lista_imagenes ) {

  $lista_imagenes = "";
  foreach ( $resultado_img as $fila ) { $lista_imagenes .= $fila->ID."," ; }
  $lista_imagenes = rtrim($lista_imagenes,',');

  // Galería de imágenes

  ?>
  <p>
  <div id="galeria_pais">
  <?php echo _do_shortcode('[_gallery columns="1" link="file" include="'.$lista_imagenes.'"]'); ?>
  </div>
  </p>
  <?php
}

Añado guiones bajos para que no lo interprete wordpress.

Depurar en wordpress

Category : Programación, Wordpress gen 27th, 2015

Activar la depuración

Desde wp-config.php:

// DEBUG

//define('WP_DEBUG', fasle);

 // Enable WP_DEBUG mode
define('WP_DEBUG', true);

// Enable Debug logging to the /wp-content/debug.log file
define('WP_DEBUG_LOG', true);

// Disable display of errors and warnings
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define('SCRIPT_DEBUG', true);

Utilizar el identificativo de tu usuario para algo sin que afecte a otros usuarios.


global $current_user;
if ( $current_user->ID == 12 ) {
   echo "<pre>" ; print_r($themename) ; echo "</pre>"; // DEV
   }

Uso de qtranslate en wordpress

Category : Idiomas, Wordpress des 17th, 2014

Una vez instalado y configurado qtranslate con los diferentes idiomas podemos añadir el selector que trae por defecto en la plantilla, por ejemplo dentro de header.php

qtrans_generateLanguageSelectCode('dropdown');

o añadir un selector personalizado.

<div id="selector_idiomas">

  <?php if(is_404()) $url = get_option('home'); else $url = ''; ?>

  <ul id="qtranslate-chooser" class="qtrans_language_chooser">
     <li class="lang-ca <?php if ( $GLOBALS['q_config']['language'] == 'ca' ) echo 'active';?>">
        <a title="Català" hreflang="ca" href="<?php echo qtrans_convertURL($url, 'ca')?>">
        <span>ca</span>
        </a>
        /
     </li>
     <li class="lang-es <?php if ( $GLOBALS['q_config']['language'] == 'es' ) echo 'active';?>">
        <a title="Castellano" hreflang="es" href="<?php echo qtrans_convertURL($url, 'es')?>">
        <span>es</span>
        </a>
     </li>
     <!--
     <li class="lang-en <?php if ( $GLOBALS['q_config']['language'] == 'en' ) echo 'active';?>">
        <a title="English" hreflang="en" href="<?php echo qtrans_convertURL($url, 'en')?>">
        <span>en</span>
        </a>
     </li>
     -->
  </ul>
  <div class="qtrans_widget_end"></div>  

</div>

y los css correspondientes en style.css:

ul.qtrans_language_chooser li {
    display: inline;
  list-style: outside none none;
}
#selector_idiomas ul, #selector_idiomas {
    display: inline;
    font-size: 1.1em;
    margin: 0 20px;
    text-align: left;
}
li.active a {
    color: black;
}

Para que qtranslate detecte los diferentes idiomas se debe colocar las siguientes etiquetas en los textarea:

<!--:es-->
Texto en castellano.
<!--:-->
<!--:ca-->
Texto en catalán.
<!--:-->

Para los input text como el título lo más comodo es la alternativa.

[\:es]Texto en castellano[\:ca]Texto en catalán

Sin la barra, yo la he añadido para que no traduzca y se muestre el código.

Nuevo tipo de contenido en wordpress

Category : Personalizar, Wordpress nov 24th, 2014

Añadimos el nuevo tipo de contenido “Servicios”

Añadir el siguiente código en el archivo functions.php del tema que estemos utilizando.

// Register Custom Post Type
function define_servicio() {

$labels = array(
'name' => _x( 'Servicios', 'Post Type General Name', 'servicios' ),
'singular_name' => _x( 'Servicio', 'Post Type Singular Name', 'servicio' ),
'menu_name' => __( 'Servicio', 'servicio' ),
'parent_item_colon' => __( 'Padre:', 'servicio' ),
'all_items' => __( 'Todos los servicios', 'servicio' ),
'view_item' => __( 'Ver servicio', 'servicio' ),
'add_new_item' => __( 'Nuevo servicio', 'servicio' ),
'add_new' => __( 'Nuevo servicio', 'servicio' ),
'edit_item' => __( 'Editar servicio', 'servicio' ),
'update_item' => __( 'Actualizar servicio', 'servicio' ),
'search_items' => __( 'Buscar servicio', 'servicio' ),
'not_found' => __( 'Servicio no encontrado', 'servicio' ),
'not_found_in_trash' => __( 'Servicio no encontrado en la papelera', 'servicio' ),
);
$args = array(
'label' => __( 'servicios', 'servicios' ),
'description' => __( 'Servicios de la agenda', 'servicio' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'revisions', 'custom-fields', ),
'taxonomies' => array( 'category', 'post_tag' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'menu_icon' => '',
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'rewrite' => $rewrite,
'capability_type' => 'post',
);
register_post_type( 'servicio', $args );

}

// Hook into the 'init' action
add_action( 'init', 'define_servicio', 0 );

Works como página de inico en la plantilla workality lite de wordpress

Category : Plantillas nov 6th, 2014

Para tener una pagina con la lista de los trabajos realizados debemos crear una pagina nueva y seleccionar como plantilla “works”.
Captura de pantalla de 2014-11-21 09:27:28
Una vez guardada la pagina ya podremos añadirla al menú.

Captura de pantalla de 2014-11-21 09:28:21

Y podemos seleccionarla como pagina de inicio.

Captura de pantalla de 2014-11-21 09:29:05