---
title: "Visa kategorier Wordpress"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/192013-visa-kategorier-wordpress"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Akerlundh"
published: "2014-02-18T17:48:44.000Z"
updated: "2014-02-20T18:44:18.000Z"
replies: 7
views: 1426
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/192013-visa-kategorier-wordpress"
---

# Visa kategorier Wordpress

## #1 — Akerlundh, 2014-02-18T17:48Z

Jag vill att alla mina kategorier ska visas på detta sättet på en sida.

```
[toggle_content title=" Här ska huvud kategorin visas "]
Har ska underkategorierna till huvudkategorin ovan visas.
[/toggle_content]...osv
```

Kan ju skriva in koden förhand men då måste jag göra det för varje kategori. Då skulle t.ex. se ut så här men om jag lägger in en ny kategori måste jag skriva allt förhand.

```
[toggle_content title="<?php
$cat=3;
$yourcat = get_category($cat);
if ($yourcat) {
echo  $yourcat->name  ;
}
?>"]
<?php wp_list_categories('orderby=name&show_count=1&use_desc_for_title=0&child_of=3'); ?>
[/toggle_content]
```

Permalänk: https://www.webforum.nu/p/192013

## #2 — MickeA.com, 2014-02-19T06:29Z

Här är en bit på vägen.. Mer info finns på <http://codex.wordpress.org/Function_Reference/get_categories>.

```php
$args = array();
foreach(get_categories( $args ) as $category){
	echo "	<h3>{$category->name}</h3>\n
			<div class=\"hidden\">";

	$args = array('child_of' => $category->cat_ID);
	foreach(get_categories( $args ) as $child){
		echo "<a href=\"#\" title="{$child->name}">{$child->name}</a><br />\n";
	}
	echo "</div><br />\n";
}
```

Se länken ovan, det kan räcka med en loop också (går att ställa in hurvida barnbarn ska visas etc..

Permalänk: https://www.webforum.nu/p/2315560

## #3 — MickeA.com, 2014-02-19T06:44Z

Om du kör följande:

```php
echo "<pre>";
print_r(get_cateogories());
echo "</pre>";
```

Så ser du vad som hämtas. Det finns en parameter som heter *hierarchical* så om rätt saker hämtas som en array, räcker det med **en forloop**, så kan du bara kolla varje "varv" om parent är 0 eller inte, för att avgöra vad som ska skrivas ut.

Permalänk: https://www.webforum.nu/p/2315561

## #4 — Akerlundh, 2014-02-19T14:02Z

> **[MickeA.com skrev:](https://www.webforum.nu/p/1570435)**
>
> $args = array();
> foreach(get_categories( $args ) as $category){
>     echo "    \<h3\>{$category-\>name}\</h3\>\\n
>             \<div class=\\"hidden\\"\>";
> 
>     $args = array('child_of' =\> $category-\>cat_ID);
>     foreach(get_categories( $args ) as $child){
>         echo "\<a href=\\"#\\" title="{$child-\>name}"\>{$child-\>name}\</a\>\<br /\>\\n";
>     }
>     echo "\</div\>\<br /\>\\n";
> }

Får felmeddelande när jag lägger in den koden. 

```
Parse error: syntax error, unexpected '{', expecting ',' or ';' in /storage/content/51/191351/hv.fordonstjanster.se/public_html/wp-content/plugins/php-code-for-posts/PHPPostCode.php(85) : eval()'d code on line 9
```

Får även felmeddelande på den andra koden. 

```
Fatal error:  Call to undefined function get_cateogories() in /storage/content/51/191351/hv.fordonstjanster.se/public_html/wp-content/plugins/php-code-for-posts/PHPPostCode.php(85) : eval()'d code on line 3
```

Permalänk: https://www.webforum.nu/p/2315566

## #5 — Akerlundh, 2014-02-19T22:09Z

Vet inte om det underlätta men tidigare har jag ju skrivit en shortcode som jag vill ha det i men den verkliga koden jag vill ha det i är denna.

```

<h4 class="slide_toggle"><a href="#">HUVUDKATEGORI</a></h4><div class="slide_toggle_content" style="display: none;">
UNDERKATEGORIER<br />
</div>
```

Permalänk: https://www.webforum.nu/p/2315569

## #6 — Akerlundh, 2014-02-19T22:35Z

Ändra vad jag skrev.....

I den första get_categories vill jag endast visa huvudkategorier inte "children" lyckas inte få någon kod att funka med det. Sen i "Children" kategorierna vill jag visa "show_count' =\> 1" så den visar hur många inlägg det finns i varje kategori, men får inte det att funka.

```php

<?php

$args = array();
foreach(get_categories( $args ) as $category){
echo " <h4 class='slide_toggle'><a href='#'>{$category->name}</a></h4>\n<div class='slide_toggle_content' style='display: none;'>";

$args = array('child_of' => $category->cat_ID);
foreach(get_categories( $args ) as $child){
echo " - <a href=\"#\" title='{$child->name}'>{$child->name}</a><br />\n";
}
echo "</div>\n";
	
}

?>
```

Permalänk: https://www.webforum.nu/p/2315570

## #7 — MickeA.com, 2014-02-20T00:20Z

För att skriva ut allt, föräldrar, barn och ev. barnbarn, måste du använda en rekursiv funktion:

```php
function get_my_hierarchy($args = array()){
	$Sb = "<ul>";
	
	foreach(get_categories($args) as $category){
		$Sb .= "
			<li>
				<strong>{$category->name}</strong><br />
				<span>{$category->category_description}</span>\n
		";
		if(sizeof(get_categories(array('hide_empty' => 0, 'parent' => $category->cat_ID))) !== 0)
			$Sb .= get_my_hierarchy(array('hide_empty' => 0, 'parent' => $category->cat_ID));

		$Sb .= "</li>\n";
	}
	$Sb .= "</ul>\n";
	return $Sb;
}
```

Kalla på funktionen med:

```php
<?php $args = array('hide_empty' => 0, 'parent' => 0);
 echo get_my_hierarchy($args);?>
```

Nu kommer det skrivs ut som en lista, enl. följande:

```
[B]Förälder 1[/B]
  - Barn 1-1
  - Barn 1-2
    - Barn 1-2-1
    - Barn 1-2-2
      - Barn 1-2-2-1

  - Barn 1-3
    - Barn 1-3-1

[B]Förälder 2[/B]
[B]Förälder 3[/B]
  - Barn 3-1
    - Barn 3-1-1

[B]Förälder 4[/B]
```

Vill du ha det som en funktion i en egen mall-fil, eller som en shortcode? Att ordna en shortcode (som även tar argument) är en barnlek.. Ev. att du måste tweaka argumenten för att få det som du vill. Eftersom jag inte hade nångra inlägg i mina kategorier så måste jag använda *'hide_empty' =\> 0* ovan, vill du dölja kategorier som inte har några inlägg, tar du bort hela argumentet, eftersom defaultvärdet är *1*.

Permalänk: https://www.webforum.nu/p/2315571

## #8 — Akerlundh, 2014-02-20T18:44Z

Nu börjar det närma sig! 

Två saker saknas. underkategorierna ska vara länkar till kategori sidan. Jag vill också att antal inlägg i underkategorierna ska räknas.

Men jag skulle vilja ha in denna koden

```
<h4 class="slide_toggle"><a href="#">HUVUDKATEGORI</a></h4><div class="slide_toggle_content" style="display: none;">

UNDERKATEGORIER<br />

</div>
```

Permalänk: https://www.webforum.nu/p/2315572

---

Tråden på webben: https://www.webforum.nu/amne/php/192013-visa-kategorier-wordpress
