En el archivo function.php
de tu theme pones la siguiente función
function show_categories_except( $excludedcats = array() ){
$count = 0;
$categories = get_the_category();
foreach( $categories as $category ) {
$count++;
if ( ! in_array( $category->cat_ID, $excludedcats ) ) {
echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "Categoría: %s" ), $category->name ) . '" ' . '>' . $category->name . '</a>';
if( $count != count( $categories )-1 ){
echo ", ";
}
}
}
}
Y donde muestras las categorías colocas (Por ejemplo, para mostrar todas las categorías excepto la 1,3,8 y 11)
<?php show_categories_except( array( 1, 3, 8 , 11 ) ); ?>
Espero que el código te sirva.
Saludos!
Excelente respuesta Palitux, pero, sólo me queda un detalle en esta misma respuesta y es la siguiente, ¿cómo puedo eliminar la coma que me queda cuando se queda tan solo una categoría, o sea, cuando hay 2s categorias o mas la coma sale normal separando las 2s categorías, pero cuando el código que me diste oculta una y se muestra la otra la coma sale quedando así:
Política, »
cómo se puede eliminar dicha coma cuando sólo me muestra una categoría en caso de que halla marcado a la noticia 2s categorías, la que oculta y la que muestra?
en la funcion show_categories_except
cambia la línea
if( $count != count( $categories )-1 ){
por
if( $count != count( $categories ) ){
…fue un error por copiar y pegar el código (a veces por ahorrar trabajo terminamos cometiendo errores jaja)
Palitux sigue existiendo el mismo problema, ya se solucionó con el ejemplo anterior pero ahora predomina con las categorias que al parecer están primero alfabeticamente que la llamada «Noticias». Pero bueno ya con esto es un avance antes no sabía hacer esto, ahora ya lo he conseguido y gracias a ti. Saludos de Cuba.
Palitux, después de erradicar todo estos detalles me di cuenta que la categoría Noticias me sale en cualquier lugar cuando existen una o más categorías, cómo puedo hacer para que ésta siempre me salga de primera y después la otras, o sea mostrarlas por orden de creación?
Tal vez deberías considerar el uso de <?php wp_list_categories( $args ); ?>
https://codex.wordpress.org/Function_Reference/wp_list_categories
sip, he tratado pero no logro dar pié con bola con éste aspecto a la hora de adecuarlo a mis necesidades, o sea lo configuro y me sale ahora todas las categorías y sólo quiero que me salgan las que le asigné al post solamente?
No entiendo nada: ¿qué sentido tiene asignar varias categorías a un post y luego no querer mostrar todas? Lo siento, pero me he perdido.
En cualquier caso y si eso es lo que quieres:
https://codex.wordpress.org/Function_Reference/wp_get_object_terms
Su segundo argumento ($taxonomies) puede hacer referencia a categorías.
Hum, creo que has entendido mal, me mal interpretaste. Mejor te lo simplifico; Cómo modifico éste código para que me muestre las categorias por orden de ID?
function show_categories_except( $excludedcats = array() ){
$count = 0;
$categories = get_the_category();
foreach( $categories as $category ) {
$count++;
if ( ! in_array( $category->cat_ID, $excludedcats ) ) {
echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "Categoría: %s" ), $category->name ) . '" ' . '>' . $category->name . '</a>';
if( $count != count( $categories )-1 ){
echo ", ";
}
}
}
}
Prueba poniendo
$categories = get_the_category_by_ID();
Nada, me da un error UNDEFINED?
Nada, que me he confundido. Lo que te puse devuelve el nombre de una categoría a partir de un ID concreto.
A ver si me aclaro: tú quieres mostrar las categorías asociadas a un post y que estén ordenadas por ID. Además, quieres que una de ellas no aparezca.
¿Es así?
Correcto, realmente es lo que quiero. Al fimn entendiste mi situación.
La que no quieres que aparezca: ¿es siempre la misma o cambia?
Bueno la que no quiero que aparezca casi siempre es la misma pero en apartados cambia!