{"id":1895,"date":"2013-05-30T06:30:02","date_gmt":"2013-05-30T05:30:02","guid":{"rendered":"http:\/\/www.manuelmarangoni.it\/sir-bit\/?p=1895"},"modified":"2013-05-28T15:01:34","modified_gmt":"2013-05-28T14:01:34","slug":"wordpress-recuperare-nome-categorie-di-un-post-e-id-della-categoria-padre","status":"publish","type":"post","link":"https:\/\/www.manuelmarangoni.it\/sir-bit\/1895\/wordpress-recuperare-nome-categorie-di-un-post-e-id-della-categoria-padre\/","title":{"rendered":"WordPress &#8211; Recuperare il nome delle categorie di un post e l\u2019id della categoria padre"},"content":{"rendered":"<p>Quando manipoliamo il codice di WordPress, spesso ci \u00e8 necessario recuperare il nome della categoria. Questo pu\u00f2 capitare se siamo all&#8217;interno di un articolo oppure all&#8217;interno di una sottocategoria: in quest&#8217;ultimo caso, generalmente, ci preme soprattutto <strong>recuperare l&#8217;id della categoria padre<\/strong> (ed eventualmente il suo nome).<\/p>\n<p>Iniziamo con ordine e vediamo come lavorare con le categorie. Ci sar\u00e0 utile per comprendere le dinamiche dell&#8217;esempio finale.<\/p>\n<h3 style=\"margin-top: 50px; margin-bottom: 20px; color: #c00;\">Recuperare nome della categoria conoscendo il suo id<\/h3>\n<p>Se andate nel pannello di amministrazione, nel menu <em>Articoli =&gt; Categorie<\/em> troverete la lista delle categorie. Portatevi sopra alla categoria voluta con il mouse e troverete l&#8217;id della categoria (identificata dal get <em>tag_ID<\/em>).<br \/>\nAvendo a disposizione l&#8217;id della categoria, a questo punto possiamo <strong>recuperare tutti i riferimenti della categoria<\/strong>. Nel nostro caso, stamperemo il nome della categoria:<\/p>\n<div class=\"wp_syntax\">\n<table>\n<tbody>\n<tr>\n<td class=\"line_numbers\">\n<pre>1\r\n2\r\n3<\/pre>\n<\/td>\n<td class=\"code\">\n<pre class=\"php\" style=\"font-family: monospace;\"><span style=\"color: #000088;\">$category<\/span> <span style=\"color: #339933;\">=<\/span> <span style=\"color: #339933;\">&amp;<\/span>get_category<span style=\"color: #009900;\">(<\/span><span style=\"color: #000088;\">$id<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\r\n<span style=\"color: #000088;\">$category_name<\/span><span style=\"color: #339933;\">=<\/span><span style=\"color: #000088;\">$category<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">slug<\/span><span style=\"color: #339933;\">;<\/span>\r\n<span style=\"color: #b1b100;\">echo<\/span> <span style=\"color: #000088;\">$category_name<\/span><span style=\"color: #339933;\">;<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><!--more--><\/p>\n<h3 style=\"margin-top: 50px; margin-bottom: 20px; color: #c00;\">Recuperare l&#8217;id di una categoria padre<\/h3>\n<p>Facciamo un passo in pi\u00f9. Se la categoria in cui siamo \u00e8, in realt\u00e0, una sottocategoria, possiamo entrare nella categoria e recuperare l&#8217;id della categoria padre con il seguente codice:<\/p>\n<p><script type=\"text\/javascript\">\/\/ <![CDATA[\ngoogle_ad_client = \"ca-pub-9984963620559913\"; \/* Sir Bit - post singolo rettangolare *\/ google_ad_slot = \"5334366715\"; google_ad_width = 336; google_ad_height = 280;\n\/\/ ]]><\/script><br \/>\n<script type=\"text\/javascript\" src=\"http:\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\">\/\/ <![CDATA[<\/p>\n\n\n\n\n<p>\/\/ ]]><\/script><\/p>\n<div class=\"wp_syntax\">\n<table>\n<tbody>\n<tr>\n<td class=\"line_numbers\">\n<pre>1\r\n2\r\n3\r\n4\r\n5<\/pre>\n<\/td>\n<td class=\"code\">\n<pre class=\"php\" style=\"font-family: monospace;\"><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #009900;\">(<\/span> is_category<span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span>\r\n\t<span style=\"color: #000088;\">$q_cat<\/span> <span style=\"color: #339933;\">=<\/span> get_query_var<span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">'cat'<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\r\n\t<span style=\"color: #000088;\">$cat<\/span> <span style=\"color: #339933;\">=<\/span> get_category<span style=\"color: #009900;\">(<\/span> <span style=\"color: #000088;\">$q_cat<\/span> <span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\r\n\t<span style=\"color: #b1b100;\">echo<\/span> <span style=\"color: #000088;\">$cat<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">category_parent<\/span><span style=\"color: #339933;\">;<\/span> <span style=\"color: #666666; font-style: italic;\">\/\/ Print the ID<\/span>\r\n<span style=\"color: #009900;\">}<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3 style=\"margin-top: 50px; margin-bottom: 20px; color: #c00;\">Recuperare i nomi delle categorie padri di una categoria<\/h3>\n<p>Adesso analizziamo un caso pi\u00f9 complesso. Mettiamo di trovarci all&#8217;interno di un articolo. L&#8217;articolo si trova all&#8217;interno di una sottocategoria: quello che vogliamo fare \u00e8 recuperare i <strong>riferimenti a tutte le categorie padre<\/strong> di quella sottocategoria.<br \/>\nCome punto di partenza, WordPress ci mette a disposizione <strong>l&#8217;id del post<\/strong> tramite un oggetto di classe sempre recuperabile, ovvero <em>$post-&gt;ID<\/em>.<br \/>\nEcco il codice per recuperare i nomi delle categorie padri della categoria a cui l&#8217;articolo appartiene:<\/p>\n<div class=\"wp_syntax\">\n<table>\n<tbody>\n<tr>\n<td class=\"line_numbers\">\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12<\/pre>\n<\/td>\n<td class=\"code\">\n<pre class=\"php\" style=\"font-family: monospace;\"><span style=\"color: #666666; font-style: italic;\">\/\/array che contiene gli id di tutte le categorie a cui il post \u00e8 associato<\/span>\r\n<span style=\"color: #000088;\">$category_array<\/span><span style=\"color: #339933;\">=<\/span>wp_get_post_categories<span style=\"color: #009900;\">(<\/span><span style=\"color: #000088;\">$post<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">ID<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span>\r\n\r\n<span style=\"color: #666666; font-style: italic;\">\/\/per ogni id categoria, stampo la sua categoria padre<\/span>\r\n<span style=\"color: #b1b100;\">foreach<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000088;\">$category_array<\/span> <span style=\"color: #b1b100;\">as<\/span> <span style=\"color: #000088;\">$value<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">{<\/span>\r\n\r\n    <span style=\"color: #000088;\">$attuale<\/span><span style=\"color: #339933;\">=<\/span>get_category<span style=\"color: #009900;\">(<\/span><span style=\"color: #000088;\">$value<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span> <span style=\"color: #666666; font-style: italic;\">\/\/oggetto di riferimento alla categoria con id=$value<\/span>\r\n    <span style=\"color: #000088;\">$categoria_padre<\/span><span style=\"color: #339933;\">=<\/span><span style=\"color: #000088;\">$attuale<\/span><span style=\"color: #339933;\">-&gt;<\/span><span style=\"color: #004000;\">category_parent<\/span><span style=\"color: #339933;\">;<\/span> <span style=\"color: #666666; font-style: italic;\">\/\/id categoria padre<\/span>\r\n\r\n    <span style=\"color: #b1b100;\">echo<\/span> <span style=\"color: #000088;\">$categoria_padre<\/span><span style=\"color: #339933;\">;<\/span>\r\n\r\n<span style=\"color: #009900;\">}<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Semplicemente, grazie alla funzione <em>wp_get_post_categories()<\/em> abbiamo estratto (e messo in un array) gli id di tutte le categorie dell&#8217;articolo. Per ognuna di queste, abbiamo recuperato i riferimenti alla categoria padre e abbiamo stampato il suo nome.<br \/>\nNaturalmente potremmo formattare il risultato a nostro piacimento, ma l&#8217;esempio \u00e8 utile per capire come funziona.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il codice di base per recuperare le informazioni di una categoria conoscendo il suo id e i riferimenti delle categorie padri, come l&#8217;id e il nome.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[79],"tags":[4,23],"class_list":["post-1895","post","type-post","status-publish","format-standard","hentry","category-wordpress-2","tag-php","tag-wordpress","cat-79-id"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/posts\/1895"}],"collection":[{"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/comments?post=1895"}],"version-history":[{"count":5,"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/posts\/1895\/revisions"}],"predecessor-version":[{"id":1900,"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/posts\/1895\/revisions\/1900"}],"wp:attachment":[{"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/media?parent=1895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/categories?post=1895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.manuelmarangoni.it\/sir-bit\/wp-json\/wp\/v2\/tags?post=1895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}