WordPress.org

Forums

View a list of categories displayed on the current page (14 posts)

  1. mtyaad
    Member
    Posted 4 years ago #

    Is there any way to display a list of categories displayed on the current list of blog entries?
    I hope a clear question, I'm not good in English.

    Thanks in advance
    Matan.

  2. MichaelH
    Member
    Posted 4 years ago #

    Not sure this answers exactly, but from a previous example:

    <?php
    // get 20 latest posts, display the categories used on those posts (most recent categories)
    $cat_array = array();
    $args=array(
      'post_type' => 'post',
      'post_status' => 'publish',
      'posts_per_page' => 20,
      'caller_get_posts'=> 1
      );
    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
      while ($my_query->have_posts()) : $my_query->the_post();
        $cat_args=array('orderby' => 'none');
        $cats = wp_get_post_terms( $post->ID , 'category', $cat_args);
        foreach($cats as $cat) {
          $cat_array[$cat->term_id] = $cat->term_id;
        }
      endwhile;
    }
    if ($cat_array) {
      echo '<p>List of categories used on 20 latest posts</p>';
      foreach($cat_array as $cat) {
        $category = get_term_by('ID',$cat, 'category');
        echo '<p><a href="' . esc_attr(get_term_link($category, 'category')) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a><p> ';
      }
    }
    wp_reset_query();  // Restore global post data stomped by the_post().
    ?>
  3. mtyaad
    Member
    Posted 4 years ago #

    Thank you, I do not really understand all the code, but I'll try it.

  4. mtyaad
    Member
    Posted 4 years ago #

    I tried and it's not exactly what I meant. But it is very close (I think).

    For example, I have two categories on the site: "Cats" and "dogs"
    The user site is located on the page category "Cats"
    In this category there are 3 posts
    One post related to the category "Cats"
    Post two related category "Dogs" and "Cats"

    I want to see a list showing the categories that are used in page category "Cats"

    Should look like this:
    ------------------------
    Related categories:
    - Cats
    - Dogs
    ------------------------

    I found this post now:
    This is very similar to what I want to do.

    Does anyone have an idea?

    Sorry if maybe I made a mistake in choosing the appropriate forum. Managers are invited to forward.

    Thanks in advance

  5. MichaelH
    Member
    Posted 4 years ago #

    Forum you selected is fine.

    You would need to take the appropriate code that 'collects' the used categories and move that into your Category Template(s).

  6. mtyaad
    Member
    Posted 4 years ago #

    I have no idea how to write code that will 'collects' the used categories.
    Maybe there's similar code somewhere in wordpress ?

  7. maorb
    Member
    Posted 4 years ago #

    @MichaelH
    I'll try to ask Matan in Hebrew to explain me exactly his needs, since I'm not sure I understood exactly. Have an idea for what he asks for.
    Thanks.

    אני לא כ"כ הבנתי מה אתה מנסה לעשות... רוצה לנסות להסביר בעברית? :)

    אם הבנתי נכון, אתה מנסה להציג בעמוד של ארכיון קטגוריה מסויימת את רשימת כל הקטגוריות של הפוסטים שבעמוד הקטגוריה שמוצג?

    אתה יכול למשל עם get_poss לקבל רשימה של כל הפוסטים שנמצאים בקטגוריה שאתה נמצא בה. אחרי זה אתה יכול בלולאת foreach לעבור על כל הפוסטים ולקבל עבור כל פוסט את רשימת הקטגוריות שהוא שייך אליהן ולשמור אותן במערך בצד.
    אחרי זה לעבור על המערך של הקטגוריות שהתקבלו ולהציג אותן.

    זה מבחינת הלוגיקה, ואם הבנתי נכון את מה שאתה מנסה להשיג...

    מאור

  8. mtyaad
    Member
    Posted 4 years ago #

    היי מאור,
    הרבה תודה !!! לא קרה לי אף פעם שפתאום ענו לי בעברית בפורום לועזי :)
    האמת, הבנת מה אני רוצה לעשות אבל לא הצלחתי להסביר הכל באנגלית.

    אז ככה:
    זה האתר שלי (לא פרסמתי עד עכשיו כי הוא בעברית) fastad.co.il
    יש לי מקרים שפוסט מסויים נמצא במספר קטגוריות.
    אני רוצה לעשות משהו שיעזור לגולשים למצוא בקלות אתרים באינדקס.

    וזה מה שאני רוצה לעשות:
    נומר שגולש נכנס לאינדקס ומעיין בקטגוריה "ספורט וכושר".
    בספורט וכושר יש גם פוסטים שמשויכים לקטגורה "בריאות ורפואה".
    אני מעוניין לתת אפשרות לגולש לעשות מיון מתקדם ולצפות רק בפוסטים
    שנמצאים גם בקטגוריה "ספורט וכושר" וגם בקטגוריה "בריאות ורפואה".

    אני רוצה להציג בכל דף ארכיון, רשימה של כל הקטגוריות שמשויכות לפוסטים שבקטגוריה שמוצגת כרגע. (כמו שהבנת)

    בנוסף, שלוחצים על קטגוריה, יוצג עמוד שמציג פוסטים שנמצאות בשני הקטגוריות. (זאת שהגולש היה בה כרגע וזאת שהוא בחר מהרשימה המוצגת)

    את הצגת שתי הקטגוריות, הבנתי שאני צריך איכשו לעשות עם
    Multiple Category Handling

    גם נתקלתי בפוסט הבא של מישל שעוזר לרכז רשימת קישורים כמו שרציתי, אבל לא הבנתי איך בדיוק להתאים את הקוד בשבילי, כי הקוד הזה מרכז רק פוסטים שמוצגים לגולש על המסך (ולא מכל הקטגוריה):
    http://wordpress.org/support/topic/show-related-categories-in-cat-view?replies=33

    טוב, מקווה שהפעם ברור :) יצא טיפה ארוך.
    אני שוקל לקחת מישהו שיעשה מה שרציתי, כמובן בתשלום.
    אם אתה מכיר מישהו כזה או אולי אתה רוצה, אז תגיד.

    ושוב, המון תודה מאור !!!
    מתן.

  9. maorb
    Member
    Posted 4 years ago #

    צריך קצת יותר להתעמק בזה.
    אם אני מבין נכון, אז מה שאתה רוצה זה שאם גולש לוחץ על לינק של קטגוריה א', אז לא יוצג לו הארכיון של קטגוריה א', אלא ארכיון של פוסטים שנמצאים בקטגוריה א' וגם ב' למשל.
    אם כך, איך הגולש יוכל לקבל את כל הפוסטים שמשוייכים רק לקטגוריה א', או לקטגוריה א' ועוד קטגוריה נוספת שהיא לא ב'? נשמע לי שזה דווקא עלול לסרבל את הניווט, כי לא כל הפוסטים משוייכים ל-2 הקטגוריות, ככה אתה מצמצם לו את החיפוש, אבל לא מאפשר לו להרחיב חזרה.

    לדעתי אולי כדאי לך בצד להשאיר את רשימת הקטגוריות בצורה רגילה לחפוש רגיל, ולהוסיף באיזה מקום נגיד איזה סלקט בוקס שיעשה את הסינון הנוסף לקטגוריה הנוספת.

    איזה קוד לכתוב צריך לחשוב על זה , אבל נראה לי שזה הכיוון..
    חוץ מזה שיש פלאגין שמאפשר אולי משהו דומה, לא בדקתי אותו אבל אולי שווה להציץ בו או בקוד שלו ולראות שם איך הוא עושה את הסינון של 2 קטגוריות?
    http://wordpress.org/extend/plugins/multiple-category-selection-widget/screenshots/

    אם יהיו לי עוד רעיונות שיצוצו לי אז אחזור לפה איתם..

  10. mtyaad
    Member
    Posted 4 years ago #

    ושוב תודה.
    ללא קשר, נכנסתי לאתר שלך וקראתי אודותיך :)
    ואפילו קראתי עד הסוך של עמוד האודות, עד השאלה "קרתם עד פה??" וטיפה אחרי.

    ולעניין,
    נכון, אתה צודק, אני לא מתכוון (ולא התכוונתי) להעלים את רשימת הקטגוריות בצד שמאל של האתר. היא תמיד תשאר במקומה ותתפקד כרגיל. הכוונה שלי (כמו שאמרת) היא לעשות איזה סלקט בוקס בדף של הקטגוריה עצמה, משהו כמו:
    "אולי הנושא שאתה מחפש קשור גם ל-בריאות ורפואה או לספורט וכושר"
    פשוט ויפה, לא ? :)

    עד עכשיו לא מצאתי פלאג שעושה דבר כזה, אבל אני אבדוק את זה שהבאת.

    תודה על התגובה המהירה.
    מתן.

  11. maorb
    Member
    Posted 4 years ago #

    אה כתבתי את כל זה מזמן, צריך אולי קצת לערוך את עמוד האודות ההוא :)
    אבל אם קפצת לבקר אז אתה מוזמן להירשם לרסס...

    ניסיתי לבדוק את האפשרות להעביר מס' ערכים של הקטגוריה ישירות דרך ה
    URL
    אבל וורדפרס מתייחסת רק לפרמטר הראשון שמובר, אם מעבירים שני ערכים של אותו פרמטר (למשל 2 קטגוריות)

    כלומר משהו כמו - site.com/?cat=1&cat=2
    לא יעבוד כאן.
    יש אפשרות להעביר מערך של ערכים , כמו בדוגמה כאן
    http://wordpress.org/support/topic/pass-array-to-query_vars
    אבל כנראה שז בכל זאת לא ממש עובד.

    אבל, מה שאתה כן יכול לעשות למשל, זה למשל להוסיף פרמטר משלך ל
    $_GET
    ולקרוא לו איך שבא לך, נגיד -
    second_cat
    יש כאן מדריך קצר שמסביר איך
    http://thewordpresswarrior.com/616/passing-variables-via-url

    ואז יש לך גולש שנמצא בקטגוריה מסוימת, שאתה יודע מה מספר הקטגוריה, ויש לך סלקט בוקס שמכיל את רשימת הקטגוריות, כשהערך הוא מספר הקטגוריה ובבחירה שלו הוא מוסיף פרמטר ב
    GET
    של הקטגוריה השניה, למשל -
    site.com/category/sport&second-cat=flowers

    ואז אתה כותב פונקציה שמקבלת את הפרמטר מה-
    GET
    ויחד עם הפרמטר של הקטגוריה הנוכחית
    ומבצעת query_post
    לפי ה Multiple Category Handling

    נראה לי שזה יכול לעבוד.

  12. mtyaad
    Member
    Posted 4 years ago #

    היי,
    ואוו תגובה ב-1 בלילה, אתה גדול !
    נראה, אולי ארשם לרסס, אבל לא יהיה לי זמן לקרוא, אז סליחה :)
    אבל אתה מוזמן להוסיף את האתר שלל לאינדקס שלי בכיף, אני מאשר לך אותו בפחות מדקה.

    פרט משני שלא ציינתי, אני לא מומחה לקוד וPHP.
    אני יודע לשחק בזה טיפה, אבל לא תמיד מצליח לי :)

    הרעיון שלך נשמע טוב, אני אנסה אותו מחר,
    אבל קראתי שאם לא עושים את זה נכון,
    אני עלול ליצור חור אבטחה רציני באתר.
    בכל מקרה, מדוע לא לעשות אולי משתנה גלובלי חדש ודרכו להעביר את ערך הקטגוריה, האם אפשר לקבוע ערך כזה בזמן לחיצה על הלינק עצמו ?
    אני לא בטוח בכלל שאני יודע איך עושים כזה דבר.

    עוד בעיה שנתקלתי בה,
    ניסיתי למצוא בימים האחרונים דרך פשוטה לקבל את מספר הID של הקטגוריה.
    כל ההסברים בכל מיני מקומות וחיפושים בגוגל, פשוט לא עבדו.
    אבל אני אמשיך לחפש, אני כמעט בטוח שאני עושה משהו לא נכון.

    אני חושב להתבסס על הקוד שפה:
    http://wordpress.org/support/topic/show-related-categories-in-cat-view?replies=33#post-1466117

    מוכן לקבל ממך הצעת מחיר להתאמת הקוד בלינק למה שאני רוצה לעשות.
    תכלול את השעות שישבת בפוסט הזה בפורום :)

  13. maorb
    Member
    Posted 4 years ago #

    גם ב 2 בלילה :)
    זה שולח לי למייל נוטיפיקיישן.

    הייתי בטוח שאתה גם מתכנת PHP...
    אבל אולי אני מתבלבל עם מישהו אחר.. אתה

    כל דבר שעושים לא נכון יכול לייצר בעיות של אבטחה או בעיות אחרות..
    לא ברור בשביל מה יש לך צורך במשתנה גלובלי בשביל הדבר הזה, נראה לי די מיותר. אתה צריך סה"כ פרמטר להעביר למערכת ..

    לגבי מספר הקטגוריה הנוכחית, זה הכי קל.
    שים את זה בקובץ של ה
    category.php
    המשתנה $cur_cat
    מקבל את הקטגוריה הנוכחית
    $cur_cat = get_query_var('cat');

    לא הבנתי את השאלה -
    האם אפשר לקבוע ערך כזה בזמן לחיצה על הלינק עצמו ?

    אתה לא רוצה לשים סלקט בוקס עם כל הקטגוריות, אלא שוב פעם רשימה של כל הלינקים?
    בכל מקרה אתה יכול לקבוע את הפרמטר גט בלינק, משהו כמו -
    a href="someting&parameter=value"
    וכמובן שאתה יכול לבנות את זה דינמית, כך שהערך של הפרמטר יקבל את המספר של הקטוגריה שמוצגת.
    אם אתרה משתמש בפונקציה get_categories
    אז המאפיין term_id
    מכיל את מספר הקטגוריה
    ישלך דוגמה למשל פה -
    http://codex.wordpress.org/Function_Reference/get_categories

    אתה יכול בסלקט בוקס להשתמש באירוע של ג'אווהסקריפט
    onchange אם אני לא טועה
    ולקבוע דרך שם הפניה של הלינק.

    לגבי הצעת מחיר - דבר כזה אפשר לתמחר רק לפי שעות עבודה בפועל, אני לא יודע כמה שעות יקח ליצר מכל זה משהו סופי שעובד, יכול להיות כמה שעות טובות כולל גם בדיקות ובאגים בדרך.
    מה שאני כותב פה זה כיוונים לדברים שנראים לי שיעבדו, אבל צריך ללשבת ולכתוב את הקוד ולעשות טסטים כדי לספק משהו סופי סגור שעובד

  14. Anydog
    Member
    Posted 4 years ago #

    Ok, that nice guys ...
    I mean, now i know how hebrew letters look like, but this is public forum, where ppl are from around all over the world. And, it's generally agreed that we communicate in english.

    Now I don't know if you found a solution or not ... ;)

Topic Closed

This topic has been closed to new replies.

About this Topic