X

Cum să creezi un nor de etichete după ID-ul categoriei / Obține etichete după ID-ul categoriei

Fragmente de IsItWP

Căutați o modalitate de a dezactiva complet funcționalitatea de căutare pe site-ul dvs.? Deși probabil există un plugin pentru asta, am creat un fragment de cod rapid pe care îl puteți utiliza pentru a dezactiva complet căutarea publică în WordPress.

Instrucțiuni:

Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:

<?php tag_cloud_by_category($cat_id); // $cat_id is the desired category id ?>

Puteți, de asemenea, să colectați toate etichetele utilizate de o categorie pentru orice altceva aveți nevoie, astfel:

<?php $tags = get_tags_in_use($cat_id, 'format'); // Format can be 'id', 'name', or 'slug' ?>

Pentru a afișa norul de etichete, adăugați pur și simplu acest cod în fișierul functions.php al temei dvs.

// 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>';
}

Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.

Dacă v-a plăcut această secțiune de cod, vă rugăm să luați în considerare să consultați și celelalte articole de pe site, cum ar fi: cele mai bune 9 pluginuri pentru evenimente WordPress și cum să creați formulare de abonare uimitoare în WordPress.

Comentarii   Lasă un răspuns

  1. Mulțumesc, mi-ai făcut ziua mai bună, nu pot să cred că oricare dintre pluginurile existente avea această opțiune de a filtra etichetele pe categorii.
    Am creat asta ca un shortcode și l-am inserat într-o pagină Elementor, doar că a trebuit să fac o corecție pentru a nu strica Elementor.
    La linia 39, după endwhile; și înainte de endif;, a trebuit să adaug următoarea linie pentru a restaura datele originale ale postării:
    wp_reset_postdata();

  2. Acesta este APROAPE ceea ce căutam.

    Am un tip de postare personalizat „download” cu propria sa etichetă personalizată „download_tag” (folosind Easy Digital Downloads)

    Cum pot adapta codul dvs. pentru a afișa „download_tag” dintr-o „download_category” furnizată

    1. Ar trebui să editați apelul WP_Query() pentru a include tipul de postare personalizat.

Adaugă un comentariu

Suntem bucuroși că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de confidențialitate, iar toate linkurile sunt nofollow. NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.

Lista de verificare pentru lansarea WordPress

Lista de verificare finală pentru lansarea WordPress

Am compilat toate elementele esențiale de verificare pentru lansarea următorului dvs. site WordPress într-o singură carte electronică la îndemână.
Da, trimite-mi eBook-ul gratuit!