לוורדפרס יש פונקציה מובנית שמאפשרת לקבל רשימת קישורים ממשק הקישורים של המערכת.
הדבר היחיד שלא הצלחתי עד כה לעשות בעזרתה בקלות הוא רשימות המופרדות ב-פסיקים\נקודות\מקפים\משהו…
יש פתרון
הקוד לרשימת הקישורים הוא:
1 2 3 4 5 6 7 | </p> <div class="links"> <ul> < ? wp_list_bookmarks("title_li=&category=2"); ?> </ul> </div> <p> |
שימו לב שלפונקציה wp_list_bookmarks יש לא מעט פרמטרים המאפשרים להשפיע על תוצאתה. במקרה שלמעלה בחרתי קישורים מקטגוריה מסוימת וויתרתי על הצגת כותרת הקטגוריה.
הקוד שנקבל כתוצאה מהפונקציה הוא:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | </p> <div class="links"> <ul> <li><a href="http://art-blog.no-ip.info/newpress/blog/">ארתיום טונקיך</a></li> <li><a href="http://www.dakars.info/">חנית כהן</a></li> <li><a href="http://firefang.net/blog/">עמרי ידן</a></li> <li><a href="http://tzafrir.net/">צפריר ריהן</a></li> <li><a href="http://ranh.co.il/">רן יניב הרטשטיין</a></li> <li><a href="http://blog.shemesh.biz/">שחר שמש</a></li> <li><a href="http://www.my-paradox.net/">שרית עמר</a></li> <li><a href="http://www.dontsmile.info">תום סלע</a></li> </ul> </div> <p> |
עכשיו נותר רק להוסיף את העיצוב (כן, כאן יתווספו לנו הפסיקים):
1 2 3 4 5 6 7 8 9 | .links ul { list-style: none; margin: 0 0 1.5em 0; padding: 0; } .links ul li { display: inline; } .links ul li:after { content: " , "; } .links ul li:last-child:after { content: ""; } .links a {color:#fff; font-size:13px; font-weight: normal;} |
זהו.
אה, כן – בעיה קטנה. לא עובד באיכספלורר.
ולכן פיתרון מספר 2:
אם מדובר על רשימת קישורים בה הראשון הוא קישור סטטי קבוע (למשל ניווט עליון)
הקוד שלנו ייראה כך:
1 2 3 4 5 6 | <div class="links"> <ul> <li class="first"><a href="<?bloginfo('url');?>">דף הבית</a></li> < ? wp_list_bookmarks("title_li=&category=2"); ?> </ul> </div> |
סימנו את האיבר הראשון בצורה יחודית ולכן ה-css ייראה כך:
1 2 3 4 5 6 7 8 | .links ul { list-style: none; margin: 0 0 1.5em 0; padding: 0; } .links ul li { display: inline; border-right: 1px solid #f5f5f5;} .links ul li.first { border-right: none;} .links a {color:#fff; font-size:13px; font-weight: normal;} |
הפתרון האחרון הוא תוכנתי:
נוסיף לקובץ functions.php את הפונקציה הבאה:
1 2 3 4 5 6 7 8 9 10 11 | function mylinks($args, $sep) { $links=get_bookmarks($args); $first = true; foreach ($links as $link) { if ($first) $first=false; else echo $sep; echo "<li><a href='".$link->link_url."'>".$link->link_name."</a></li>\n"; } } |
עכשיו נקרא לה במקום הרלוונטי בתבנית:
1 2 3 4 5 | <div class="links"> <ul> < ? mylinks("category=2", ","); ?> </ul> </div> |
והעיצוב ייראה כך:
1 2 3 4 5 6 7 | .links ul { list-style: none; margin: 0 0 1.5em 0; padding: 0; } .links ul li { display: inline;} .links a {color:#fff; font-size:13px; font-weight: normal;} |
נהניתם ? הרשמו לעדכוני RSS !
למה לסמן את האיבר הראשון? (first)
כי האיבר הראשון הוא היחיד שלא צריך להופיע מימינו סימן (בעברית, כן ?) ולכן צריך להבחין בינו לבין השאר.
למה לעבוד קל כשאפשר לעבוד קשה?
function mylinks($args, $sep) {
echo join($sep, get_bookmarks($args));
}
א. כדי להסביר את התהליך
ב. הפונקציה שלך לא עובדת…
get_bookmarks מחזירה מערך אובייקטים מסוג bookmark
צילום מסך של התוצאה הסופית היה יכול לעזור…
(בכל מקרה אני כבר יישמתי – ועובד נהדר!)
תודה
פינגבאק: טיפ וורדפרס: להוסיף קו מפריד בתפריט עמודים או הקטגוריות | אֶקְסְפֶּרִימֶנְט דוֹט אֶפֶס