So erstellen Sie ein Theme-Navigationsmenü in WordPress (2)

Lisa Kudrow
Freigeben: 2023-02-23 19:44:34
nach vorne
1643 Leute haben es durchsucht

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.

So erstellen Sie ein Theme-Navigationsmenü in WordPress (2)

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.

1. Verwenden Sie get_terms(), um die Kategorieliste abzurufen.

Verwenden Sie get_terms(), um Ihre Artikelkategorien, Linkkategorien, benutzerdefinierten Kategorien usw. abzurufen. Durch Übergabe der entsprechenden Parameter an get_terms() können Sie ein Objekt zurückgeben Array. Dieses Array enthält alle gewünschten Kategorien. Das Folgende ist der Funktionsprototyp von get_terms():

<?php get_terms( $taxonomies, $args ) ?>
Nach dem Login kopieren
$taxonomies:

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.

$args:

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 .... natürlich in Form einer ungeordneten Liste Man kann es sich als Menü vorstellen:

<ul id="menu">		
<?php
	// 获取分类
	$terms = get_terms(&#39;category&#39;, &#39;orderby=name&hide_empty=0&#39; );

	// 获取到的分类数量
	$count = count($terms);
	if($count > 0){
		// 循环输出所有分类信息
		foreach ($terms as $term) {
			echo &#39;<li><a href="&#39;.get_term_link($term, $term->slug).&#39;" title="&#39;.$term->name.&#39;">&#39;.$term->name.&#39;</a></li>&#39;;
		}
 	}
?>		
</ul>
Nach dem Login kopieren

Die Funktion get_terms() gibt ein Objektarray $terms zurück. Wir ermitteln zunächst, ob das Array leer ist, was bedeutet, dass keine Klassifizierung erhalten wurde nicht leer ist, können Sie die Klassifizierung ausgeben. Jedes Array-Element von $terms ist ein Objekt. Die Bedeutung einiger Objektattribute ist: Slug: Kategorieabkürzung, Name: Kategoriename, term_id: Kategorie-ID. Wie im obigen Code gezeigt, können Sie den Attributwert des Objekts über $term->name abrufen.

2. Verwenden Sie die Methode zum Lesen der Datenbank, um die Klassifizierungsliste zu erhalten.

Wenn Sie die WordPress-Datenbank kennen, können Sie feststellen, dass die WordPress-Klassifizierungsinformationen in den beiden Tabellen wp_terms und wp_term_taxonomy gespeichert sind Artikelklassifizierung, Artikel-Tags und Link-Kategorien usw.), wp_term_taxonomy wird zum Speichern weiterer Beschreibungen verwendet (zum Speichern von Beschreibungen, zum Unterscheiden von Kategorien und Tags usw.). Wir können SQL verwenden, um die Liste der gewünschten Kategorien aus diesen beiden Tabellen abzurufen:

<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 = &#39;category&#39;");
							
	if($cats) {
		foreach($cats as $cat) {
			echo &#39;<li><a href="&#39;.get_category_link($cat->term_id).&#39;" title="&#39;.$cat->name.&#39;">&#39;.$cat->name.&#39;</a></li>&#39;;
		}
 	}
?>		
</ul>
Nach dem Login kopieren

3. So erhalten Sie die ID der aktuellen Kategorie

Manchmal müssen wir eine Unternavigation erstellen, z. B.

http://www.nashowgroup.com/?p=58&lang=zh

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(&#39;cat&#39;);
}
Nach dem Login kopieren

Holen Sie sich die erste Kategorie des Artikels auf der Artikelseite:

$cats = get_the_category();
if($cats)
    $cat_id = $cats[0]->cat_ID;
Nach dem Login kopieren

四、子导航的制作

上面我们讲解了如何获取当前分类的id,下面我们来讲讲如何制作子导航。首先,我们来制作一个当前分类下子分类的子导航,这里用到wp_list_categories()来列出子分类,当然你可以用我前面介绍的两种方法来获取分类。:

<ul>
<?php
// 这里我们用到上面获取到的$cat_id,获取该分类下的所有子分类
wp_list_categories(&#39;orderby=name&hide_empty=0&child_of=&#39; . $cat_id);
?> 
</ul>
Nach dem Login kopieren

如果你的网站规模比较小,一个分类下的文章也不多,那么你可以在子导航中列出这个分类下的所有文章:

<ul>
	<?php
		global $wp_query;

		$query = array ( &#39;cat&#39; => $cat_id, &#39;orderby&#39; => title, &#39;order&#39;=> 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 &#39;class="chose"&#39;; ?> href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
	<?php endwhile; wp_reset_postdata(); endif; ?>
</ul>
Nach dem Login kopieren

以上代码中用到了WP_Query来获取文章列表,该对象的使用方法,可以参考WordPress的官方文档:Class Reference/WP QueryFunction Reference/query posts。class="chose"用于高亮当前文章的菜单项,css规则你可以自己定义。

五、页面page的获取

WordPress的页面page可以通过wp_list_pages()来列出,不过这个函数输出的HTML都是固定的,如果你想要自定义这些HTML,可以使用get_pages()来获取页面列表,代码示例如下:

<ul id="menu">
$mypages = get_pages();

if(count($mypages) > 0) {
    foreach($mypages as $page) {
        echo &#39;<li><a href="&#39;.get_page_link($page->ID).&#39;" title="&#39;.$page->post_title.&#39;">&#39;.$page->post_title.&#39;</a></li>&#39;;
    }
}
else {
    echo &#39;<li><a href="#">没有页面</a></li>&#39;;
}
</ul>
Nach dem Login kopieren

-- 完 --

推荐学习:《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!

Verwandte Etiketten:
Quelle:ludou.org
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!