{"id":228618,"date":"2022-10-28T12:30:00","date_gmt":"2022-10-28T09:30:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228618"},"modified":"2022-11-09T03:17:32","modified_gmt":"2022-11-09T00:17:32","slug":"jak-uzyskac-taksonomie-wordpress-wedlug-identyfikatora-terminu","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/jak-uzyskac-taksonomie-wordpress-wedlug-identyfikatora-terminu\/","title":{"rendered":"Jak uzyska\u0107 taksonomi\u0119 WordPress wed\u0142ug identyfikatora terminu"},"content":{"rendered":"\n<p>Czasami podczas pracy nad projektem dobrze by\u0142oby mie\u0107 funkcj\u0119 API, kt\u00f3ra pomog\u0142aby osi\u0105gn\u0105\u0107 to, co nale\u017cy zrobi\u0107. Przyk\u0142ad: mo\u017cliwo\u015b\u0107 pobrania taksonomii wed\u0142ug identyfikatora terminu.<\/p>\n<p>To prawda, \u017ce \u200b\u200bnie jest to trudne, ale mo\u017cliwo\u015b\u0107 odzyskania informacji z wcze\u015bniej istniej\u0105cych funkcji jest zawsze przyjemna.<\/p>\n<p>Ale kiedy nie jest to mo\u017cliwe, piszemy w\u0142asny spos\u00f3b, aby to zrobi\u0107, prawda?<\/p>\n<h2>Pobierz taksonomi\u0119 wed\u0142ug identyfikatora terminu<\/h2>\n<p>Kiedy zaczynam robi\u0107 co\u015b takiego, zazwyczaj uruchamiam ten pomys\u0142 przez kilku innych programist\u00f3w, aby upewni\u0107 si\u0119, \u017ce nie brakuje mi jakiej\u015b funkcji, kt\u00f3ra istnieje w rdzeniu WordPressa i po prostu o tym nie wiem.<\/p>\n<p>(Zdarza si\u0119 to cz\u0119\u015bciej ni\u017c my\u015blisz, ale mo\u017ce to by\u0107 wi\u0119kszy problem z mojej strony ni\u017c cokolwiek innego. Mimo to WordPress to du\u017cy program :).<\/p>\n<p>Przypadek u\u017cycia czego\u015b takiego jest prosty:<\/p>\n<ul>\n<li>Mam identyfikator terminu, kt\u00f3ry zosta\u0142 zapisany w bazie danych za pomoc\u0105 innych \u015brodk\u00f3w (takich jak wybrany element w innym miejscu aplikacji, na przyk\u0142ad na pulpicie nawigacyjnym).<\/li>\n<li>Chc\u0119 wy\u015bwietli\u0107 nazw\u0119 taksonomii powi\u0105zan\u0105 z tym identyfikatorem terminu.<\/li>\n<\/ul>\n<p>Koncepcyjnie uwa\u017cam to za rodzaj odwr\u00f3conego wygl\u0105du. Zwykle mo\u017cemy wzi\u0105\u0107 taksonomi\u0119 i sprawdzi\u0107 jej warunki. Ale taksonomia wed\u0142ug identyfikatora terminu zmierza w innym kierunku.<\/p>\n<p>Na szcz\u0119\u015bcie jest to do\u015b\u0107 \u0142atwe, je\u015bli pod\u0142\u0105czysz <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_term\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">istniej\u0105cy interfejs API<\/a>. <a href=\"https:\/\/gist.github.com\/tommcfarlin\/475f3d28451809ffd43e5ffcb686e05d\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sprawd\u017a to<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Retrieves the taxonomy name associated on the specified $term_id. \n *\n * @access private\n * @param  int    $term_id  The term ID from which to retrieve the taxonomy name.\n * @return string $taxonomy The name of the taxaonomy associated with the term ID.\n *\/\nprivate function get_taxonomy_by_term_id( $term_id) {\n\n    \/\/ We can't get a term if we don't have a term ID.\n    if (0 === $term_id || null === $term_id) {\n        return;\n    }\n\n    \/\/ Grab the term using the ID then read the name from the associated taxonomy.\n    $taxonomy = '';\n    $term = get_term( $term_id );\n    if (false !== $term) {\n        $taxonomy = $term-&gt;taxonomy;\n    }\n\n    return trim( $taxonomy );\n}\n<\/code><\/pre>\n<p>Kod powinien by\u0107 \u0142atwy do na\u015bladowania (je\u015bli nie dla komentarzy nad funkcj\u0105), ale zwr\u00f3ci albo pusty ci\u0105g, albo nazw\u0119 taksonomii opart\u0105 na identyfikatorze terminu.<\/p>\n<p>Poniewa\u017c get_term pobiera obiekt <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_term\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP_Term<\/a>, mo\u017cemy spojrze\u0107 na w\u0142a\u015bciwo\u015b\u0107 taksonomii terminu, aby pobra\u0107 nazw\u0119. Nast\u0119pnie przycinam ci\u0105g na wszelki wypadek (je\u015bli pracuj\u0119 z czyim\u015b kodem, nigdy nie wiem, czy jest dope\u0142niony, czy nie i nie chc\u0119 obcych znak\u00f3w).<\/p>\n<p>Niezale\u017cnie od tego, teraz masz dost\u0119pn\u0105 funkcj\u0119, aby pobra\u0107 nazw\u0119 taksonomii wed\u0142ug terminu ID. Je\u015bli zwracany jest pusty ci\u0105g, oznacza to, \u017ce nie znaleziono nazwy taksonomii.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>S\u0105 chwile, w kt\u00f3rych dobrze by\u0142oby mie\u0107 funkcj\u0119 API, kt\u00f3ra pomog\u0142aby pobra\u0107 taksonomi\u0119 wed\u0142ug identyfikatora terminu. Oto jeden spos\u00f3b, aby to zrobi\u0107.<\/p>\n","protected":false},"author":1,"featured_media":167462,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,897,805,845,866],"tags":[1169],"class_list":["post-228618","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-php-7","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/228618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=228618"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/228618\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/167462"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=228618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=228618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=228618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}