Ich habe Ihnen „So erstellen Sie ein Theme-Navigationsmenü in WordPress (1)“ vorgestellt. In diesem Artikel erfahren Sie, wie Sie ein Theme-Navigationsmenü in WordPress erstellen.
Im vorherigen Tutorial ging es um die Verwendung der integrierten Funktionen von WordPress zum Erstellen eines Navigationsmenüs. Die von diesen Funktionen generierten HTML-Codes sind jedoch festgelegt und es ist für Sie schwierig, den HTML-Code zu definieren Navigationsmenü. In diesem Artikel stellen wir Ihnen einige freiere Möglichkeiten zum Erstellen von Navigationsmenüs vor, die nicht nur für Navigationsmenüs verwendet werden können. Natürlich liefert Ihnen dieser Artikel nur eine Idee zur Lösung des Problems. Es handelt sich nicht um ein Tutorial wie ein Rezept. Sobald Sie es gelesen und kopiert haben, können Sie es in Ihrem Projekt verwenden.
<?php get_terms( $taxonomies, $args ) ?>
Dieser Parameter ist die Klassifizierungskategorie, die Sie erhalten möchten. „Kategorie“, „Linkkategorie“, „Meine_Taxonomie“ repräsentieren die Artikelkategorie, die Linkkategorie bzw. Ihre benutzerdefinierte Kategorie, wobei Meine_Taxonomie der Name Ihrer benutzerdefinierten Kategorie ist.
Dieser Parameter ist der Filterparameter der Kategorie. Er wird verwendet, um die Erfassung der Kategorie zu steuern, die Sie erhalten möchten, einschließlich der Anzahl der Kategorien, die Sie erhalten möchten, der Art der Sortierung und der übergeordneten Kategorie. und ob leere Kategorien usw. ausgegeben werden sollen. Weitere Informationen finden Sie in der offiziellen WordPress-Dokumentation: Funktionsreferenz/Begriffe abrufen
oder in der kurzen Übersetzung auf Chinesisch: Häufig verwendete Funktionen-get_terms() Folgendes ist ein Beispiel für die Verwendung dieser Funktion, bei der ein
<ul id="menu"> <?php // 获取分类 $terms = get_terms('category', 'orderby=name&hide_empty=0' ); // 获取到的分类数量 $count = count($terms); if($count > 0){ // 循环输出所有分类信息 foreach ($terms as $term) { echo '<li><a href="'.get_term_link($term, $term->slug).'" title="'.$term->name.'">'.$term->name.'</a></li>'; } } ?> </ul>
<ul id="menu"> <?php $cats = $wpdb->get_results("SELECT {$wpdb->prefix}terms.term_id, name FROM {$wpdb->prefix}term_taxonomy, {$wpdb->prefix}terms WHERE {$wpdb->prefix}term_taxonomy.term_id = {$wpdb->prefix}terms.term_id AND taxonomy = 'category'"); if($cats) { foreach($cats as $cat) { echo '<li><a href="'.get_category_link($cat->term_id).'" title="'.$cat->name.'">'.$cat->name.'</a></li>'; } } ?> </ul>
Die Personalnavigation auf der linken Seite kann ein beliebiges Element sein, z. B. Unterkategorien unter der aktuellen Kategorie oder Artikel unter der aktuellen Kategorie usw. Die erste Frage ist also, wie wir die ID der aktuellen Kategorie erhalten, damit wir den nächsten Schritt machen können.
Holen Sie sich die ID der aktuellen Kategorie auf der Kategorieseite:if ( is_category() ) { $cat_id = get_query_var('cat'); }
$cats = get_the_category(); if($cats) $cat_id = $cats[0]->cat_ID;
上面我们讲解了如何获取当前分类的id,下面我们来讲讲如何制作子导航。首先,我们来制作一个当前分类下子分类的子导航,这里用到wp_list_categories()来列出子分类,当然你可以用我前面介绍的两种方法来获取分类。:
<ul> <?php // 这里我们用到上面获取到的$cat_id,获取该分类下的所有子分类 wp_list_categories('orderby=name&hide_empty=0&child_of=' . $cat_id); ?> </ul>
如果你的网站规模比较小,一个分类下的文章也不多,那么你可以在子导航中列出这个分类下的所有文章:
<ul> <?php global $wp_query; $query = array ( 'cat' => $cat_id, 'orderby' => title, 'order'=> ASC ); $queryObject = new WP_Query($query); if ($queryObject->have_posts()) : while ($queryObject->have_posts()) : $queryObject->the_post(); ?> <li><a <?php if($post->ID == $wp_query->post->ID) echo 'class="chose"'; ?> href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_postdata(); endif; ?> </ul>
以上代码中用到了WP_Query来获取文章列表,该对象的使用方法,可以参考WordPress的官方文档:Class Reference/WP Query和Function Reference/query posts。class="chose"用于高亮当前文章的菜单项,css规则你可以自己定义。
WordPress的页面page可以通过wp_list_pages()来列出,不过这个函数输出的HTML都是固定的,如果你想要自定义这些HTML,可以使用get_pages()来获取页面列表,代码示例如下:
<ul id="menu"> $mypages = get_pages(); if(count($mypages) > 0) { foreach($mypages as $page) { echo '<li><a href="'.get_page_link($page->ID).'" title="'.$page->post_title.'">'.$page->post_title.'</a></li>'; } } else { echo '<li><a href="#">没有页面</a></li>'; } </ul>
-- 完 --
推荐学习:《WordPress教程》
Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein Theme-Navigationsmenü in WordPress (2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!