Taxonomías avanzadas en WordPress 3.1

Esta es otra entrega del repaso que estoy haciendo en mi blog de las novedades más interesantes que nos aporta WordPress 3.1. Este último artículo ha llegado con un poco de retraso, pero bueno, aquí está, esta vez publicado en Ayuda WordPress.

Vamos a ver una novedad muy interesante que nos ofrece WordPress 3.1: la posibilidad de seleccionar a la vez múltiples taxonomías. Imaginémonos que tenemos varias taxonomías, por ejemplo (suponiendo que las entradas hacen referencia a videojuegos): Plataforma, Desarrollador, Género, Edad Recomendada, etc… Hasta ahora si queríamos obtener los resultados que pertenecieran a una taxonomía concreta no teníamos problemas. Pero si queríamos mostrar los resultados que pertenecieran a dos taxonomías a la vez (por ejemplo aquellos videojuegos cuya plataforma es Playstation 3 y su edad recomendada 18 años) no podíamos hacerlo. Hasta ahora.

Pero empecemos desde el principio. Vamos a ver primero qué es una taxonomía y dónde estábamos antes de WordPress 3.1

Qué es una Taxonomía

Sabéis que WordPress tiene Categorías y Etiquetas. Pues bien, estas son en sí mismas taxonomías, es decir, criterios para clasificar una entrada, artículo, noticia o como queráis llamarlo. Lo interesante es que además de las Categorías y de las Etiquetas WordPress te permite crear taxonomías adicionales con el fin de lograr una mejor clasificación de tus entradas.

Por ejemplo, si queremos clasificar un grupo de videojuegos podemos hacerlo de muchas maneras: según su plataforma (PC, Playstation 3, XBox 360, etc..), según la edad recomendada, el tipo de juego, el precio, etc… Es más que probable que sólo con las Categorías y las Etiquetas te quedes corto y necesites crear nuevas taxonomías.

Cómo crear una taxonomía

Vamos con un ejemplo real. Vamos a suponer que tenemos este videojuego para una web figurada que se llama «misvideojuegos.com»:

  • Título de la Entrada: Postal 2
  • Categoría: Inteligencia
  • Etiquetas: Ciencia ficción, 3D
  • Idioma: Castellano
  • Plataforma: XBox 360
  • Fabricante: Valve
  • Edad: 12 años

Lo que vamos a lograr es que se pueda adjuntar toda esta información al videojuego que vayas a crear en WordPress. Para lograrlo necesitarás crear (o «registrar» como lo llaman en WordPress) las nuevas taxonomías. Para ello abre el archivo functions.php de tu tema y escribe:

function crear_mis_taxonomias() {
  register_taxonomy('idioma', 'post', array(
  'hierarchical' => false, 'label' => 'Idioma',
  'query_var' => true, 'rewrite' => true));

  register_taxonomy('plataforma', 'post', array(
  'hierarchical' => false, 'label' => 'Plataforma',
  'query_var' => true, 'rewrite' => true));

  register_taxonomy('fabricante', 'post', array(
  'hierarchical' => false, 'label' => 'Fabricante',
  'query_var' => true, 'rewrite' => true));

  register_taxonomy('edad', 'post', array(
  'hierarchical' => false, 'label' => 'Edad',
  'query_var' => true, 'rewrite' => true));  
}
add_action('init', 'crear_mis_taxonomias', 0);

Grabamos el archivo y entramos en el administrador de WordPress. Si hacemos click en añadir una nueva Entrada, veremos que en la derecha, debajo de etiquetas, tenemos las nuevas taxonomías:

Taxonomías en WordPress

Para crear o «registrar» una taxonomía utilizamos la función de WordPress register_taxonomy(). En este enlace podéis ver la gran cantidad de parámetros que podemos usar al crear nuestras taxonomías.

En el código podemos ver que el segundo parámetro es el que indica a qué objeto aplicamos las nuevas taxonomías. En el ejemplo hemos puesto «post», lo cual indica que se añadirán a cualquier Entrada que creemos. ¿Y si queremos que aparezcan en las Páginas pero no en las Entradas? Entonces pondríamos ‘page’. ¿Y si hemos creado unas Entradas Personalizadas que se llaman «videojuegos»? (si queréis ver cómo crear entradas personalizadas podéis verlo en el artículo Nuevo en WordPress 3.1: Archivos de Entradas Personalizadas. Entonces escribiríamos ‘videojuegos’ y las taxonomías saldrían sólo en las entradas personalizadas que se llaman ‘videojuegos’. ¿Y si queremos que salgan en varios sitios? Entonces en vez de una cadena ponemos un array:

register_taxonomy('edad', array('videojuegos', 'post'), array(
  'hierarchical' => false, 'label' => 'Edad',
  'query_var' => true, 'rewrite' => true)); 

Si hemos añadido las taxonomías a una entrada personalizada estas aparezerán en el menú de la izquierda bajo la misma:

Taxonomías en entradas personalizadas

¿Qué URLs obtenemos?
Ahora obtendremos nuevas URLs en línea con las nuevas taxonomías. Por ejemplo:





Estas URLs utilizarán el fichero archive.php de nuestro tema para mostrar todas las entradas que cumplan con la taxonomía correspondiente. Pero ¿cómo las mostramos?

Mostrar las entradas correspondientes a una etiqueta de una taxonomía concreta

Para mostrar las entradas que tengan una etiqueta concreta de una de nuestras taxonomías tenemos que poner este código antes del «loop» de nuestro tema:

<?php query_posts(array('plataforma' => 'playstation-3', 'showposts' => 15)); ?>

Se mostrarán entonces todas las entradas que pertenezcan a la etiqueta «Playstation 3» de la Taxonomía «Plataforma». Le hemos indicado también que muestre 15 entradas.

Nota: Cuando decimos antes del loop es antes de:

    <?php while ( have_posts() ) : the_post(); ?>

Mostrar todos los valores de una taxonomía

Si queremos mostrar todas las entradas, una a una, que correspondan a una taxonomía concreta simplemente pon este código:

<?php echo get_the_term_list($post->ID, 'plataforma', 'Plataforma: ', ', ', ''); ?>

Los tres últimos parámetros le dicen a WordPress qué es lo que tiene que poner antes de los enlaces de las etiquetas, entre cada enlace y después de cada enlace respectivamente.

Mostrar una nube de taxonomías en tu tema de WordPress

Para mostrar una nube de taxonomías que contenga todas las etiquetas de una taxonomía concreta, añade este código donde quieras que aparezca:

<?php wp_tag_cloud(array('taxonomy' => 'plataforma', 'number' => 30)); ?>

Recuerda cambiar «plataforma» por el nombre de tu taxonomía. También puedes editar el parámetro «number» que especifica cuantas etiquetas se van a mostrar. Para mostrarlas todas pon «0».

Consultas avanzadas de Taxonomías en WordPress 3.1

Bueno, por fin estamos donde queríamos llegar: a las novedades que nos ofrece WordPress 3.1 para las Taxonomías. Las consultas avanzadas de Taxonomías usan un nuevo parámetro en las funciones de consulta que se llama “tax_query”

tax_query es un array de arrays, donde cada array describe qué criterio quieres que se cumpla a la hora de mostrar las entradas. No hay mucha documentación aún sobre tax_query, por lo que seguro que saldrán más y mejores usos de los que pongo yo aquí.

Supongamos que en nuestro blog tenemos una Categoría que se llama «Libros» y una etiqueta que se llama «Misterio» (recordad que las Categorías y las Etiquetas son Taxonomías). Si queremos mostrar todas las entradas que tengan la categoría «Libros» y la etiqueta «Misterio», pondríamos antes del «loop»:

$custom_query = wp_parse_args($query_string);
$custom_query['tax_query'] = array(
    array(
     'taxonomy' => 'category',
     'terms' => array('Libros'),
     'field' => 'slug',
   ),
  array(
  'taxonomy' => 'post_tag',
    'terms' => array('Misterio'),
    'field' => 'slug',
   ),
);
query_posts($custom_query);
query_posts($custom_query);

Como veis las entradas que se van a mostrar satisfacen los dos criterios a la vez. Se puede incluir un array de Categorías y un array de Etiquetas. Más opciones:

Si lo que queremos es que NO salgan las entradas que tengan una o varias categorías concretas (por ejemplo, que no salgan las entradas con las categorías «Libros» ni «Discos»):

$custom_query = wp_parse_args($query_string);
$custom_query['tax_query'] = array(
array(
'taxonomy' => 'category',
'terms' => array('libros', 'discos'),
'field' => 'slug',
'operator' => 'NOT IN',
),
);
query_posts($custom_query);

Igualmente, esto hay que ponerlo antes del loop, para que en el loop sólo salgan las entradas que hemos seleccionado previamente. Como veis, a diferencia del anterior ahora hay un nuevo parámetro llamado «operator» que tiene como valor «NOT IN».

Por último, podemos seleccionar que salgan las entradas que son de una Categoría (por ejemplo «Libros») o de una etiqueta concreta (por ejemplo «Heavy»). Como veréis a continuación, la diferencia radica en el parámetro «relation».

$custom_query = wp_parse_args($query_string);
$custom_query['tax_query'] = array(
'relation' => 'OR',
array(
'taxonomy' => 'category',
'terms' => array('libros'),
'field' => 'slug',
),
array(
'taxonomy' => 'post_tag',
'terms' => array('heavy'),
'field' => 'slug',
),
);
query_posts($custom_query);

Os habréis fijado que en estos ejemplos hay un campo que se llama «field» para el que hemos dado el valor «slug». Si en vez del «slug» queremos dar el ID de la Categoría o Etiqueta, tendriamos que poner “term_id”. También se puede poner su nombre con «name» en vez de «slug». Por defecto es «term_id».

Eso en cuanto a Categorías y Etiquetas, pero ¿y si quiero hacerlo con las taxonomías que he creado? Pues por ejemplo, si quiero que salgan sólo aquellos videojuegos que estén recomendados para una edad superior a los 18 años, pondría antes del loop:

$myquery['tax_query'] = array(
	array(
		'taxonomy' => 'edad',
		'terms' => array('19'),
		'field' => 'slug',
	),
);
query_posts($myquery);

Saldrían aquellos artículos en los que en el cuadro de la nueva taxonomía «Edad» haya incluido el número 18. Podría hacer igualmente combinaciones y exclusiones tal y como hicimos con las Categorías y las Etiquetas.

Pero siguiendo con el ejemplo que teníamos más arriba, en el que teníamos una entrada personalizada llamada «Videojuegos» con varias taxonomías, si suponemos que sólo queremos mostrar las entradas personalizadas «videojuegos» cuya taxonomía «Edad» sea 18 años, ponemos antes del loop:

<?php
$query = array(
tax_query => array(
array(
taxonomy => 'edad',
terms => array('18'),
field => 'slug'
)
),
'post_type' => 'videojuegos'
);
query_posts($query);
?>

Como veis hemos añadido «post-type» para poner el nombre de la entrada personalizada.

Y por último, sabed que incluso podemos combira meta_query con tax_query, como en este ejemplo:

$query = array(
'post_type' => 'ad',
'meta_query' => array(
array(
'key' => 'status',
'value' => 'Active',
'compare' => 'LIKE'
)
),
'tax_query' => array(
array(
'taxonomy' => 'size',
'terms' => array( 'box' ),
'field' => 'slug'
)
)
);

Y esto es todo, ¡espero que os sea de utilidad!

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(10 votos, promedio: 4.4)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

49 comentarios en “Taxonomías avanzadas en WordPress 3.1”

  1. Pingback: Artículo publicado en Ayudawordpress.com: Taxonomías avanzadas en Wordpress 3.1 | emenia.es

  2. Excelente artículo, la verdad es que me ha ayudado bastante para la planificación de un nuevo proyecto.saludos

  3. Increíble guía, nunca había visto una tan completa en español, de mucha utilidad y sirve como una gran referencia con un excelente ejemplo.

  4.  Muy buen articulo! solo un comentario:
    Cuando pones la función get_the_term_list(… es para mostrar los "Terms" de un post y no las entradas (yo lo entiendo como los post de un blog). Corregime si me equivoco en la observación. 
    Saludos

  5. Existe un buscador por taxonomias?, por ejemplo poder elegir que busque solo titulo, genero, año, idioma, etc ??

  6. Te puedo decir que es la única vez que he comprendido bien lo que son las taxonomías y también he aprendido a la perfección como implantarlas, además de todas las opciones que tienen. Muy bien redactado y explicado. Felicidades!!!

    Saludos!!!

  7. Excelente post, muy claro y sobre todo, que creo  puede ser la solución que estaba buscando.
    Lo que necesito es generar un buscador que combine 4 taxonomias creadas, he revisado esta web: .
    pero cre que solo es para combinar categoria con una taxonomia.
    Por favor dame pistas para encontrar una solución que la siento cercana, y muchas gracias por tu post, de verdad me ha abierto a nuevas posibilidades.

  8. Excelente post, felicitaciones porque esta super bien redactado, me gustaria saber como poner una taxonomia en el home de la pagina, reemplazando el index tradicional,  y que esta taxonomia preserve la paginacion, como si fuese en si la misma taxonomia (Categorias) que trae wordpress por defecto.

  9. Un magnifico post y una gran ayuda.
    Como comentario, diré que las etiquetas no son taxonomías, son folksonomías. La principal diferencia, sin entrar en términos académicos, es que ni son jerárquicas, ni excluyentes, ni objetivas, entre otras características.
    Una taxonomía debería ser creada y mantenida por el creador de la web, mientras que una folksonomía debería ser alimentada, directa o indirectamente, por el usuario, empleando su lenguaje y preferencias.

  10. Oscar_Manzano

    Tengo una duda!!! con respecto a las URLs que se crean con las nuevas taxonomías, por ejemplo:
    *misvideojuegos.com/plataforma/playstation-3/
    según dices… utiliza el fichero «archive.php» pero si quiero utilizar otra plantilla que nombre tiene que tener?
    Por ejemplo con las entradas personalizadas utiliza:
    «archive-videojuegos.php»
    No se si me explico.

  11. Entiendo que la explicación es para cuando se tiene instalado WP en un servidor.
    Yo estoy usando wordpress.com, directamente online, sin mi propio servidor.
    ¿Cómo puedo hacer para filtrar por dos categorías o tags, a la vez?

  12. Que lastima, tenia que haber leido esto antes, ahora tengo una media de tres categorias por post y no puedo ni hacer busquedas avanzadas, ni mostrar por url los post de tres categorias a la vez…
    De todas formas, el articulo esta muy bien explicado, gracias Fernando

  13. Hola, he creado una nueva taxonomia, de esta manera
    function crear_mis_taxonomias() {
      register_taxonomy(‘coches’, ‘post’, array(
      ‘hierarchical’ => true, ‘label’ => ‘Coches’,
      ‘query_var’ => true, ‘rewrite’ => true));
    }
    add_action(‘init’, ‘crear_mis_taxonomias’, 0);

    He creado una nueva taxonomia y un nuevo post asociado a esa taxonomia. Pero no tengo forma de mostrarla por la url http://dominio.com/coches/taxonomia

    Tengo que hacer algun cambio en el fichero archive.php o crear un taxonomy.php???

    Gracias,

  14. Hola,
    Creo que se adapta a lo que estoy preparando pero con otro tipo de productos en lugar de con videojuegos. ¿hay alguna manera para que la gente añada los productos que más le gusten a una lista (lo tengo, quiero comprarlo…?
    Gracias
    Darío

  15. Gracias por explicar las cosas para humanos… He seguido los pasos tanto para crear entradas personalizadas como nuevas taxonomias. He creado tres entradas personalizadas y todo funciona perfecto. Los problemas los tengo con las taxonomias que las he creado (
    hierarchical' => true) para ordenarlas jerárquicamente. El tema es que cuando relaciono la entrada con la categoria creada me muestra una pag sin contenido y un mensaje en la pestaña del navegador 'No se encuentra la pag'. He actualizado los enlaces permanentes y nada. Algo se me escapa pero no logro ver cual es el problema. Agradecería alguna sugerencia u orientación.

    Gracias
    Alex

  16. Crea una página y aplicale una plantilla de página. Y allí pones el código del looping con la consulta al custom post!

  17. He de decir que sin tener ninguna idea de PHP y cogiendo retales de tu código y alguno suelto de por ahí he conseguido algo que hasta ahora consideraba imposible para mi nivel de programación que es cero.

    Dicho esto necesito poder solucionar el punto en el que me he quedado clavado: En el nuevo tipo de contenido aparecen las nuevas taxonomías pero… ¿Cómo puedo meter el nuevo tipo de contenido en las categorías que ya tenía definidas en "Entradas"? Actualmente el nuevo tipo de contenido no aparece en ninguna parte a pesar de que está creado.

    Muchas gracias por adelantado!

  18. pregunta: como hago para imprimir el nombre o el tag que le doy a un post bajo la taxonomia que he creado?

    normalmente se usa: 

    pero para mostrar el tag que cree bajo la taxonimia??

  19. Alejandro Garbarini

    Juan: antes que nada saludos desde Argentina, no se si estoy leyendo el articulo correcto, quiero montar un sitio sobre wordpress, dentro de este sitio quiero poner un buscador de estudios de grabacion de musica.

    la idea es que este buscador, filtre estos "estudios de grabacion" por su ubicacion "Provincia" y luego por la "Ciudad" … y asi salga el listado de los estudios disponibles ya filtrados.

    ¿ para hacer eso sirven las taxonomias? … no soy programador ni mucho menos solo un entuciasta … pero … me gusta leer bastante sobre lo que hago y entender … ¿ voy bien encamiado o me basta un buen plugin de busqueda avanzada ? saludos

     

  20. Hola. Estoy intentando crear taxonomías en un sitio web, pero no se compila el código sino que se imprime textualmente el código en la parte superior del panel de administración y en el sitio también (me refiero con esto último a que los visitantes lo ven también) 

  21. Hola. Estoy intentando crear taxonomías en un sitio web, pero no se compila el código sino que se imprime textualmente el código en la parte superior del panel de administración y en el sitio también (me refiero con esto último a que los visitantes lo ven también)

  22. Solo para confirmar. ¿Debo agregar el código entre verdad? Antes tenía el functions.php así:
    »,
    ‘after_widget’ => »,
    ‘before_title’ => »,
    ‘after_title’ => »,
    ));
    ?>Y ahora lo tengo así: »,
    ‘after_widget’ => »,
    ‘before_title’ => »,
    ‘after_title’ => »,
    ));
    ?>

    false, ‘label’ => ‘Personajes’,
    ‘query_var’ => true, ‘rewrite’ => true));

    register_taxonomy(‘lugares’, ‘post’, array(
    ‘hierarchical’ => false, ‘label’ => ‘Lugares’,
    ‘query_var’ => true, ‘rewrite’ => true));

    register_taxonomy(‘palabras’, ‘post’, array(
    ‘hierarchical’ => false, ‘label’ => ‘Palabras’,
    ‘query_var’ => true, ‘rewrite’ => true));
    }
    add_action(‘init’, ‘crear_taxonomias’, 0);?>

    *Noten que he agregado el código en una sentencia php. ¿Está bien? Por que ahora mi problema es que si bien veo las taxonomias creadas al editar un post, ahora tuve un error en el minify de mi css:

    Warning: Cannot modify header information – headers already sent by (output started at /home/usuario/public_html/misitio.com/wp-content/themes/nombredetheme/functions.php:11) in/home/usuario/public_html/misitio.com/wp-content/plugins/w3-total-cache/lib/Minify/Minify.php on line 325
     

    *También cuando intento buscar un post con una keyword (desde mi panel de administración) para ubicar un post, me sale:

    Warning: Cannot modify header information – headers already sent by (output started at /home/usuario/public_html/misitio/wp-content/themes/theme/functions.php:11) in/home/usuario/public_html/misitio.com/wp-includes/pluggable.php on line 881

    Todo esto ha surgido desde la implementación del código. ¿Alguna ayuda?

  23. Hola Juan, estoy intentando añadir varias imagenes a un tipo personalizado de post. Vi tu otro tutorial y me da errores, de modo que vine a este para coemenzar con los tipos de post antes que nada.

    En tu ejemplo del principio de esta página colocas este código:
    ________
    function crear_mis_taxonomias() {
    register_taxonomy('idioma', 'post', array(
    'hierarchical' => false, 'label' => 'Idioma',
    'query_var' => true, 'rewrite' => true));

    register_taxonomy('plataforma', 'post', array(
    'hierarchical' => false, 'label' => 'Plataforma',
    'query_var' => true, 'rewrite' => true));

    register_taxonomy('fabricante', 'post', array(
    'hierarchical' => false, 'label' => 'Fabricante',
    'query_var' => true, 'rewrite' => true));

    register_taxonomy('edad', 'post', array(
    'hierarchical' => false, 'label' => 'Edad',
    'query_var' => true, 'rewrite' => true));
    }
    add_action('init', 'crear_mis_taxonomias', 0);
    ___________
    Al añadir esto:

    __

    register_taxonomy('edad', array('videojuegos', 'post'), array(
    'hierarchical' => false, 'label' => 'Edad',
    'query_var' => true, 'rewrite' => true));
    __
    aparece la pestaña de Videojuego, pero solo lista Edad. debo de de copiar ese bloque cambiando el label Edad por el que quiera? supongo que debe de haber alguna forma de que se haga solo.
    Estoy empezando con wordpress y mi intención crear una página donde un cliente pueda subir varias fotos a un post. He revisado tu sotros articulos (el de campo personalizado repetible de imagenes) pero me da errores. Asíq ue lo tomaré con calma y lo hiré haciendo poco a poco. Te agradezco la ayuda de antemano

  24. Hola, creo que ya lo comprendo, está el primer modo (1º bloque de código) que inserta las etiquetas en POST genericos, y este segundo bloque las inserta en el post type videojuegos.
    register_taxonomy('edad', array('videojuegos', 'post'), array(
    'hierarchical' => false, 'label' => 'Edad',
    'query_var' => true, 'rewrite' => true));

    Lo que he hecho es copiar y pegarlo combiandole la etiqueta y el primer valor del aray. Voy bien??

    Otra cosa que no tengo claro es como mostrar los resultados . Dónde está el Loop¿ en Archives.php? Lo he encontrado ahí, y coloco antes de que empieze, como indicas

    <?php echo get_the_term_list($post->ID, 'plataforma', 'Plataforma: ', ', ', ''); ?>

    para filtrar los resultados, pero en qué página aparece?
    Puedo crear una página exclusiva para mostrar este tipo de post? supongo que sería crear una plantilla de página e incluir ese loop, voy por buen camino? Muchas gracias

  25. Pues mira tu, que probando probando lo he conseguido.
    Estoy usando WP 3.4 instalado en local con webmatrix.
    El theme por defecto es Twentyeleven, de modo que he cambiado donde aparecía twentyten por esto último. Incluso en <?php twentyten_posted_on(); ?> por <?php twentyeleven_posted_on(); ?> ^^ por si fallaba.

    Ahora ya tengo creadas: archive-videojuegos.php, single-videojuegos.php

  26. Hola, muchas gracias por el tutorial, he conseguido hacer casi todo lo que queria a excepcion de una cosa.
    He creado varias taxonomias, por ejemplo una es «location», estas se muestran en cada entrada (single.php) del modo «Location: Spain».

    Ahora bien, lo que quiero es hacer que al darle clic en «Spain» (una de las tags de la taxonomia Location) se muestren todas las entradas correspondientes a Spain.

    Lo que se dice mas arriba:
    ‘spain’, ‘showposts’ => 15)); ?>

    Me obliga a decir ‘pais’ ademas de ‘location’, ¿como sería el codigo para esto? Si tengo que agregar una linea de codigo por cada tag me puedo volver loco.

    Tal y como lo tengo ahora, al hacer clic en Spain me muestra todos los posts de la misma categoria en lugar de todos los posts de Location>Spain.

    Creo que mas o menos se entiende lo que quiero hacer :p
    Un saludo y muchas gracias.

    1. Ya lo he solucionado disculpa las molestias, puedes borrar los comentarios si quieres.

      Mi theme no tenia archive.php y estaba haciendo todo en category.php sin darme cuenta, he creado un archive.php y ya funciona todo.

  27. Hola, Muchas gracias por el aporte. Yo lo que quiero crear es una página que me muestre sólo los posts de 2 categorias concretas por ejemplo: «Zapatos» «Azules». De esta forma, al entrar en la pagina zapatos/azules, te aparecen todos los posts relacionados con Zapatos azules…etc.

    Sin embargo, pongo el código que dices:

    $custom_query = wp_parse_args($query_string);$custom_query[‘tax_query’] = array(    array(     ‘taxonomy’ => ‘category’,     ‘terms’ => array(‘Libros’),     ‘field’ => ‘slug’,   ),  array(  ‘taxonomy’ => ‘post_tag’,    ‘terms’ => array(‘Misterio’),    ‘field’ => ‘slug’,   ),);query_posts($custom_query);query_posts($custom_query);

    entre 

     

    en una plantilla de página, justo antes del loop

    pero no me sale ningún post, y eso que he creado un post con la categoria Libros y etiqueta Misterio.

    A parte he copiado el código

    ‘playstation-3’, ‘showposts’ => 15)); ?>

    antes del loop del mismo archivo (page2.php) pero me aparecen TODOS los posts, no sólo los de playstation-3.

    Me puedes ayudar a saber que hago mal?
    Gracias

  28. Excelente !! me funcionó a la perfección,
    sólo tengo una duda, ¿Dónde puedo especificar el numero de posts que quiero mostrar? :

    $myquery[‘tax_query’] = array(
    array(
    ‘taxonomy’ => ‘edad’,
    ‘terms’ => array(’19’),
    ‘field’ => ‘slug’,
    ),
    );
    query_posts($myquery);

  29. Una pregunta…

    Por ejemplo tengo una entrada con…

    Título de la Entrada: Postal 2
    Categoría: Inteligencia, Puzzle
    Etiquetas: Ciencia ficción, 3D
    Idioma: Castellano, Ingles, Ruso
    Plataforma: XBox 360, PC, PS3
    Fabricante: Valve
    Edad: 12 años

    Veras que añadi mas Plataformas como la PC y PS3 e idiomas com Inglés y Ruso (solo por dar ejemplo)
    Como hago para que en el loop se muestren esas taxonomias y se enlace automaticamente a la pagina de dicha taxonomia?, por ejemplo para el campo de taxonomia normal, el que viene siempre, wp permite hacer lo que yo digo incluyendo

    Para hacer que las taxonomias que yo quiera mostrar deberia hacer algo como y respectivamente, o tengo que usar otro codigo, no se si me explico bien, te agradeceria que me ayudes…

    Incluyo el * en <*?php porque de lo contrario no aparece

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido