¿Está buscando una manera de desactivar totalmente la funcionalidad de búsqueda en su sitio web? Si bien es probable que haya un plugin para esto, hemos creado un fragmento de código rápido que puede utilizar para desactivar completamente la búsqueda pública en WordPress.
Instrucciones:
Todo lo que tienes que hacer es añadir este código al archivo functions.php de tu tema o en un plugin específico del sitio:
<?php tag_cloud_by_category($cat_id); // $cat_id is the desired category id ?>
También puedes reunir todas las etiquetas en uso por una categoría para cualquier otra cosa que necesites así:
<?php $tags = get_tags_in_use($cat_id, 'format'); // Format can be 'id', 'name', or 'slug' ?>
Para mostrar la nube de etiquetas, simplemente añade este código al archivo functions.php de tu tema.
// Get tags IN USE by category id function get_tags_in_use($category_ID, $type = 'name'){ // Set up the query for our posts $my_posts = new WP_Query(array( 'cat' => $category_ID, // Your category id 'posts_per_page' => -1 // All posts from that category )); // Initialize our tag arrays $tags_by_id = array(); $tags_by_name = array(); $tags_by_slug = array(); // If there are posts in this category, loop through them if ($my_posts->have_posts()): while ($my_posts->have_posts()): $my_posts->the_post(); // Get all tags of current post $post_tags = wp_get_post_tags($my_posts->post->ID); // Loop through each tag foreach ($post_tags as $tag): // Set up our tags by id, name, and/or slug $tag_id = $tag->term_id; $tag_name = $tag->name; $tag_slug = $tag->slug; // Push each tag into our main array if not already in it if (!in_array($tag_id, $tags_by_id)) array_push($tags_by_id, $tag_id); if (!in_array($tag_name, $tags_by_name)) array_push($tags_by_name, $tag_name); if (!in_array($tag_slug, $tags_by_slug)) array_push($tags_by_slug, $tag_slug); endforeach; endwhile; endif; // Return value specified if ($type == 'id') return $tags_by_id; if ($type == 'name') return $tags_by_name; if ($type == 'slug') return $tags_by_slug; } // Output tag cloud based on category id function tag_cloud_by_category($category_ID){ // Get our tag array $tags = get_tags_in_use($category_ID, 'id'); // Start our output variable echo '<div class="tag-cloud">'; // Cycle through each tag and set it up foreach ($tags as $tag): // Get our count $term = get_term_by('id', $tag, 'post_tag'); $count = $term->count; // Get tag name $tag_info = get_tag($tag); $tag_name = $tag_info->name; // Get tag link $tag_link = get_tag_link($tag); // Set up our font size based on count $size = 8 + $count; echo '<span style="font-size:'.$size.'px;">'; echo '<a href="'.$tag_link.'">'.$tag_name.'</a>'; echo ' </span>'; endforeach; echo '</div>'; }
Nota: Si es la primera vez que añades fragmentos de código en WordPress, consulta nuestra guía sobre cómo añadir correctamente fragmentos de código en WordPress, para no romper accidentalmente tu sitio.
Si te ha gustado este fragmento de código, por favor, considere revisar nuestros otros artículos en el sitio como: 9 mejores plugins de WordPress para eventos y cómo crear impresionantes formularios optin en WordPress.
This is ALMOST what i’ve been looking for.
I have a custom post type of ‘download’ with it’s own custom tag ‘download_tag’ (using Easy Digital Downloads)
How can I adapt your code to show the ‘download_tag’ of a supplied ‘download_category’
You would need to edit the WP_Query() call to include the custom post type.