Cómo discriminar categorías en la lista de entradas de Wordpress

  • Autor Autor OnlyOne
  • Fecha de inicio Fecha de inicio
O

OnlyOne

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas, estoy haciendo modificaciones en un theme de wordpress; lo que quiero hacer es listar las categorías en las que se encuentra cada entrada del blog... lo consigo con la siguiente función:

PHP:
Categorias de esta entrada: <?php the_category(', '); ?>

Lo cual me genera (por ejemplo):

Insertar CODE, HTML o PHP:
Categorias de esta entrada: cat1, cat2, cat3
.
Ahora, lo que quisiera sería discriminar alguna categoría que yo elija previamente y que el resultado final sea (por ejemplo):

Insertar CODE, HTML o PHP:
Categorias de esta entrada: cat1, cat3

Vemos que se discriminó la categoría cat2.

Alguien me puede dar una mano?
Gracias. :encouragement:
 
Te hice una function

Insertar CODE, HTML o PHP:
function mt_categorias_post($id){
  			$seperator = ', ';
  			$id_category=array(12,10);
            foreach((get_the_category($id)) as $category) { 
			if(!in_array($category->term_id, $id_category)){
    			$output.= '<a href="'.get_category_link($category->term_id ).'" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '">'.$category->cat_name.'</a>'.$seperator; 
			}
} 
			return trim($output, $seperator);	
}

eso en el functions.php de tu theme.

donde pone

Insertar CODE, HTML o PHP:
  			$id_category=array(12,10);

ve introduciendo los ids de las categorias separado por comas que quieras excluir, ejemplo:

Insertar CODE, HTML o PHP:
  			$id_category=array(12,10,13,15);

por último, en ves de:

Insertar CODE, HTML o PHP:
<?php the_category(', '); ?>

pon

Insertar CODE, HTML o PHP:
<?php echo mt_categorias_post(get_the_ID()); ?>
 
También puedes usar Enlace eliminado para seleccionar las categorías a mostrar según el ID de las mismas.
 
[MENTION=26818]ActualidadBlog[/MENTION] Gracias por tu ayuda pero no puedo hacer funcionar la función. 😕

[MENTION=2243]jonay[/MENTION] Muchas Gracias, funciona de maravilla :welcoming:
Ahora tengo otra duda, no se si se puede adaptar la función que hiciste para que solo seleccione categorías de IDs preestablecidas.

(por ejemplo) Preestablezco las categorías cat1,cat2,cat3 en la función y el post tiene como categorías cat2,cat5,cat9; así que solo devolvería cat2.

No se si eso sea posible, pero tengo la duda 😕

Muchas Gracias. 😛8:
 
La function es para excluir algunas no para incluir.

Por lo que te entendí tu quieres seleccionar las que se van a mostrar, no excluir algunas categorias, si es así modifica la function.

Esto:

Insertar CODE, HTML o PHP:
			if(!in_array($category->term_id, $id_category)){

por esto

Insertar CODE, HTML o PHP:
			if(in_array($category->term_id, $id_category)){

Y solo se mostrarán las categorías que añadas en el array
 
Al final ocupe ambos códigos, el de inclusión y exclusión.

Muchas gracias. 😛8:
 
Atrás
Arriba