/** * REST API: WP_REST_Taxonomies_Controller class * * @package WordPress * @subpackage REST_API * @since 4.7.0 */ /** * Core class used to manage taxonomies via the REST API. * * @since 4.7.0 * * @see WP_REST_Controller */ class WP_REST_Taxonomies_Controller extends WP_REST_Controller { /** * Constructor. * * @since 4.7.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'taxonomies'; } /** * Registers the routes for taxonomies. * * @since 4.7.0 * * @see register_rest_route() */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_items' ), 'permission_callback' => array( $this, 'get_items_permissions_check' ), 'args' => $this->get_collection_params(), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P[\w-]+)', array( 'args' => array( 'taxonomy' => array( 'description' => __( 'An alphanumeric identifier for the taxonomy.' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => array( $this, 'get_item_permissions_check' ), 'args' => array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); } /** * Checks whether a given request has permission to read taxonomies. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_items_permissions_check( $request ) { if ( 'edit' === $request['context'] ) { if ( ! empty( $request['type'] ) ) { $taxonomies = get_object_taxonomies( $request['type'], 'objects' ); } else { $taxonomies = get_taxonomies( '', 'objects' ); } foreach ( $taxonomies as $taxonomy ) { if ( ! empty( $taxonomy->show_in_rest ) && current_user_can( $taxonomy->cap->assign_terms ) ) { return true; } } return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to manage terms in this taxonomy.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Retrieves all public taxonomies. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Response object on success, or WP_Error object on failure. */ public function get_items( $request ) { // Retrieve the list of registered collection query parameters. $registered = $this->get_collection_params(); if ( isset( $registered['type'] ) && ! empty( $request['type'] ) ) { $taxonomies = get_object_taxonomies( $request['type'], 'objects' ); } else { $taxonomies = get_taxonomies( '', 'objects' ); } $data = array(); foreach ( $taxonomies as $tax_type => $value ) { if ( empty( $value->show_in_rest ) || ( 'edit' === $request['context'] && ! current_user_can( $value->cap->assign_terms ) ) ) { continue; } $tax = $this->prepare_item_for_response( $value, $request ); $tax = $this->prepare_response_for_collection( $tax ); $data[ $tax_type ] = $tax; } if ( empty( $data ) ) { // Response should still be returned as a JSON object when it is empty. $data = (object) $data; } return rest_ensure_response( $data ); } /** * Checks if a given request has access to a taxonomy. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return true|WP_Error True if the request has read access for the item, otherwise false or WP_Error object. */ public function get_item_permissions_check( $request ) { $tax_obj = get_taxonomy( $request['taxonomy'] ); if ( $tax_obj ) { if ( empty( $tax_obj->show_in_rest ) ) { return false; } if ( 'edit' === $request['context'] && ! current_user_can( $tax_obj->cap->assign_terms ) ) { return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to manage terms in this taxonomy.' ), array( 'status' => rest_authorization_required_code() ) ); } } return true; } /** * Retrieves a specific taxonomy. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_item( $request ) { $tax_obj = get_taxonomy( $request['taxonomy'] ); if ( empty( $tax_obj ) ) { return new WP_Error( 'rest_taxonomy_invalid', __( 'Invalid taxonomy.' ), array( 'status' => 404 ) ); } $data = $this->prepare_item_for_response( $tax_obj, $request ); return rest_ensure_response( $data ); } /** * Prepares a taxonomy object for serialization. * * @since 4.7.0 * @since 5.9.0 Renamed `$taxonomy` to `$item` to match parent class for PHP 8 named parameter support. * * @param WP_Taxonomy $item Taxonomy data. * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Response object. */ public function prepare_item_for_response( $item, $request ) { // Restores the more descriptive, specific name for use within this method. $taxonomy = $item; $base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name; $fields = $this->get_fields_for_response( $request ); $data = array(); if ( in_array( 'name', $fields, true ) ) { $data['name'] = $taxonomy->label; } if ( in_array( 'slug', $fields, true ) ) { $data['slug'] = $taxonomy->name; } if ( in_array( 'capabilities', $fields, true ) ) { $data['capabilities'] = $taxonomy->cap; } if ( in_array( 'description', $fields, true ) ) { $data['description'] = $taxonomy->description; } if ( in_array( 'labels', $fields, true ) ) { $data['labels'] = $taxonomy->labels; } if ( in_array( 'types', $fields, true ) ) { $data['types'] = array_values( $taxonomy->object_type ); } if ( in_array( 'show_cloud', $fields, true ) ) { $data['show_cloud'] = $taxonomy->show_tagcloud; } if ( in_array( 'hierarchical', $fields, true ) ) { $data['hierarchical'] = $taxonomy->hierarchical; } if ( in_array( 'rest_base', $fields, true ) ) { $data['rest_base'] = $base; } if ( in_array( 'rest_namespace', $fields, true ) ) { $data['rest_namespace'] = $taxonomy->rest_namespace; } if ( in_array( 'visibility', $fields, true ) ) { $data['visibility'] = array( 'public' => (bool) $taxonomy->public, 'publicly_queryable' => (bool) $taxonomy->publicly_queryable, 'show_admin_column' => (bool) $taxonomy->show_admin_column, 'show_in_nav_menus' => (bool) $taxonomy->show_in_nav_menus, 'show_in_quick_edit' => (bool) $taxonomy->show_in_quick_edit, 'show_ui' => (bool) $taxonomy->show_ui, ); } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); // Wrap the data in a response object. $response = rest_ensure_response( $data ); if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) { $response->add_links( $this->prepare_links( $taxonomy ) ); } /** * Filters a taxonomy returned from the REST API. * * Allows modification of the taxonomy data right before it is returned. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param WP_Taxonomy $item The original taxonomy object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters( 'rest_prepare_taxonomy', $response, $taxonomy, $request ); } /** * Prepares links for the request. * * @since 6.1.0 * * @param WP_Taxonomy $taxonomy The taxonomy. * @return array Links for the given taxonomy. */ protected function prepare_links( $taxonomy ) { return array( 'collection' => array( 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ), ), 'https://api.w.org/items' => array( 'href' => rest_url( rest_get_route_for_taxonomy_items( $taxonomy->name ) ), ), ); } /** * Retrieves the taxonomy's schema, conforming to JSON Schema. * * @since 4.7.0 * @since 5.0.0 The `visibility` property was added. * @since 5.9.0 The `rest_namespace` property was added. * * @return array Item schema data. */ public function get_item_schema() { if ( $this->schema ) { return $this->add_additional_fields_schema( $this->schema ); } $schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'taxonomy', 'type' => 'object', 'properties' => array( 'capabilities' => array( 'description' => __( 'All capabilities used by the taxonomy.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'description' => array( 'description' => __( 'A human-readable description of the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'hierarchical' => array( 'description' => __( 'Whether or not the taxonomy should have children.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'labels' => array( 'description' => __( 'Human-readable labels for the taxonomy for various contexts.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'name' => array( 'description' => __( 'The title for the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'slug' => array( 'description' => __( 'An alphanumeric identifier for the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'show_cloud' => array( 'description' => __( 'Whether or not the term cloud should be displayed.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'types' => array( 'description' => __( 'Types associated with the taxonomy.' ), 'type' => 'array', 'items' => array( 'type' => 'string', ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'rest_base' => array( 'description' => __( 'REST base route for the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'rest_namespace' => array( 'description' => __( 'REST namespace route for the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'visibility' => array( 'description' => __( 'The visibility settings for the taxonomy.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, 'properties' => array( 'public' => array( 'description' => __( 'Whether a taxonomy is intended for use publicly either via the admin interface or by front-end users.' ), 'type' => 'boolean', ), 'publicly_queryable' => array( 'description' => __( 'Whether the taxonomy is publicly queryable.' ), 'type' => 'boolean', ), 'show_ui' => array( 'description' => __( 'Whether to generate a default UI for managing this taxonomy.' ), 'type' => 'boolean', ), 'show_admin_column' => array( 'description' => __( 'Whether to allow automatic creation of taxonomy columns on associated post-types table.' ), 'type' => 'boolean', ), 'show_in_nav_menus' => array( 'description' => __( 'Whether to make the taxonomy available for selection in navigation menus.' ), 'type' => 'boolean', ), 'show_in_quick_edit' => array( 'description' => __( 'Whether to show the taxonomy in the quick/bulk edit panel.' ), 'type' => 'boolean', ), ), ), ), ); $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * Retrieves the query params for collections. * * @since 4.7.0 * * @return array Collection parameters. */ public function get_collection_params() { $new_params = array(); $new_params['context'] = $this->get_context_param( array( 'default' => 'view' ) ); $new_params['type'] = array( 'description' => __( 'Limit results to taxonomies associated with a specific post type.' ), 'type' => 'string', ); return $new_params; } } Armáda ČR – THOR Tac
Nové dopravní letadlo pro AČR Armáda ČR

Nové dopravní letadlo pro AČR

Minulý týden proběhla tiskem zpráva, že armáda chce koupit větší dopravní letadlo. Tento požadavek armáda vznesla AČR na základě vyhodnocení  eva... Zobrazit příspěvek
Vrbětice – hromada zbraní za dveřmi s visacím zámkem. Armáda ČR

Vrbětice – hromada zbraní za dveřmi s visacím zámkem.

O Vrběticích toho již bylo napsáno mnoho a běžnému smrtelníkovi z toho musí jít hlava kolem. Informace padají zleva i zprava a kromě médií se do ... Zobrazit příspěvek
Výbuch ve Vrběticích je nesmírnou tragédií, stali jsme se však součástí něčeho, co se ve světě dělo a děje Armáda ČR

Výbuch ve Vrběticích je nesmírnou tragédií, stali jsme se však součástí něčeho, co se ve světě dělo a děje

Vrbětice malá valašská víska, která se dostala do podvědomí nejenom občanům ČR, ale i celosvětově. Asi nejčatější slovní spojení vázané k vrbětic... Zobrazit příspěvek
Armádu musíme modernizovat.  Starý šrot už nemůžeme potřebovat. Armáda ČR

Armádu musíme modernizovat. Starý šrot už nemůžeme potřebovat.

Klatovští mechanici znovu rozpohybovali BVP-2 pro 7. mechanizovanou brigádu, zpráva kterou na svých oficiílních stránkách zveřejnila AČR dne 8.3. 2021... Zobrazit příspěvek
Moderní armádu potřebujeme, komunistické vydírání snižuje naši obranyschopnost Armáda ČR

Moderní armádu potřebujeme, komunistické vydírání snižuje naši obranyschopnost

Smlouva kupní o koupi automobilu To že vláda skáče jak komunisti pískají se bohužel stalo smutnou realitou posledních let. Komunisti využívají svůj ro... Zobrazit příspěvek
Válka v Karabachu ukázala, že pouze odvaha a odhodlání proti moderní technice nestačí. Armáda ČR

Válka v Karabachu ukázala, že pouze odvaha a odhodlání proti moderní technice nestačí.

Minulý týden proběhlo každoroční velitelské shromáždění AČR, kde se hodnotí činnost armády za uplynulé období a samozřejmě se mluví také o rozvoji arm... Zobrazit příspěvek
Komunisti vyhrožují zablokováním státního rozpočtu, pokud vláda nesplní jejich podmínky a nesníží výdaje na obranu. Armáda ČR

Komunisti vyhrožují zablokováním státního rozpočtu, pokud vláda nesplní jejich podmínky a nesníží výdaje na obranu.

Komunisti vyhrožují zablokováním státního rozpočtu, pokud vláda nesplní jejich podmínky. Jednou z podmínek na které podporu rozpočtu staví je i s... Zobrazit příspěvek
Dojímá mě starost hlavního vojenského personalisty o osudy vojáků v civilu. Problém je ale jinde Armáda ČR

Dojímá mě starost hlavního vojenského personalisty o osudy vojáků v civilu. Problém je ale jinde

Představte si hypotetickou situaci. Jste odborníkem ve firmě, práce vás baví, ale podmínky nejsou ideální. Nejedná se ani tak o finance, i když ty jso... Zobrazit příspěvek
Netrestejme lidi za hříchy mládí, Aktivní zálohy i armáda potřebují naplnit stavy Armáda ČR

Netrestejme lidi za hříchy mládí, Aktivní zálohy i armáda potřebují naplnit stavy

V roce 2007 když SOG válčil v Afghánské provincii Helmand, byli součástí našeho kontingentu i britští vojáci. Jednalo se o styčného důstojní... Zobrazit příspěvek
Modernizace 30 let staré techniky je stejný nesmysl jako modernizovat 30 let starou škodovku Armáda ČR

Modernizace 30 let staré techniky je stejný nesmysl jako modernizovat 30 let starou škodovku

Ministerstvo obrany podepsalo smlouvu na modernizaci tanků T-72M4CZ. Za technické zhodnocení 33 strojů zaplatí 1,098 miliardy korun včetně DPH. Stroje... Zobrazit příspěvek
Kdo neříká pravdu, AČR  nebo novináři ? Armáda ČR

Kdo neříká pravdu, AČR nebo novináři ?

Po napsání a uveřejnění mého článku o nově vznikajícím speciálním komandu  v Chrudimi, se na mě jako supi slétli příznivci „Chrudimských orl... Zobrazit příspěvek
Nové speciální komando z Chrudimi bude zachraňovat Čechy v zahraničí. To už tady bylo….SOG. Armáda ČR

Nové speciální komando z Chrudimi bude zachraňovat Čechy v zahraničí. To už tady bylo….SOG.

„V Chrudimi vzniká elitní bojová jednotka. Bude zachraňovat i české turisty v zahraničí“. „Nové komando bude zachraňovat Čechy, kteří se v zahran... Zobrazit příspěvek
Vojáci jedou na stromky Armáda ČR

Vojáci jedou na stromky

„ Vojín Němec!“ „Zde, soudruhu plukovníku.“  „Seberte ještě dva vojáky, nafasujte si šedivou barvu a mazejte natřít silnici před hlavní branou. Z... Zobrazit příspěvek
Lumír Němec: Opravy a údržbu bojové techniky nesmíme podceňovat Armáda ČR

Lumír Němec: Opravy a údržbu bojové techniky nesmíme podceňovat

https://www.youtube.com/watch?time_continue=1&v=uoyfCTmzcOI&feature=emb_logo Zobrazit příspěvek
Lumír Němec: Mechanizovaná brigáda těžkého typu? Potřebuje moderní výzbroj: BVP i tanky Armáda ČR

Lumír Němec: Mechanizovaná brigáda těžkého typu? Potřebuje moderní výzbroj: BVP i tanky

https://www.youtube.com/watch?v=lkSVgApri1I&feature=emb_logo Zobrazit příspěvek
Armáda nemá místo pro generála Malenínského. Nemá nebo nechce mít? Armáda ČR

Armáda nemá místo pro generála Malenínského. Nemá nebo nechce mít?

Generál František Malenínský odchází z armády, armáda pro něj nemá místo. „ Počet generálských míst v armádě je omezený a každá vojenská kariéra ... Zobrazit příspěvek
Modernizovat zastaralé tanky a BVP je hloupost. Armáda potřebuje moderní zbraně, říká exnáčelník speciálních jednotek Němec Armáda ČR

Modernizovat zastaralé tanky a BVP je hloupost. Armáda potřebuje moderní zbraně, říká exnáčelník speciálních jednotek Němec

https://www.youtube.com/watch?time_continue=1&v=lkSVgApri1I&feature=emb_logo Zobrazit příspěvek
Výcvikové mise teroristy neporazí. Armáda ČR

Výcvikové mise teroristy neporazí.

Armáda České republiky převzala velení výcvikové mise v africkém Mali. Hlavním cílem této mise je  výcvik a podpora malijské armády tak, aby... Zobrazit příspěvek
Pokud by soukromá firma hospodařila jako MO, tak je v konkurzu a managera zavřou. Armáda ČR

Pokud by soukromá firma hospodařila jako MO, tak je v konkurzu a managera zavřou.

Není žádným tajemstvím že Armáda České Republiky má problémy s výstrojí a výzbrojí. Začíná to u řadových vojáků, z nichž někteří jsou dodnes... Zobrazit příspěvek
Ukončení služebního poměru bez udání důvodu. Armáda ČR

Ukončení služebního poměru bez udání důvodu.

Jedním z aspektů, které hrají roli při rozhodování o profesionální kariéře vojáka je vědomí toho, že pokud odsloužíte v armádě 15 let, máte nárok... Zobrazit příspěvek
Špičková armádní technika je nám k ničemu, pokud nebude dostatek obyčejných vojáků, kteří s ní budou pracovat. A na obyčejné vojáky, stát docela …… Armáda ČR

Špičková armádní technika je nám k ničemu, pokud nebude dostatek obyčejných vojáků, kteří s ní budou pracovat. A na obyčejné vojáky, stát docela ……

Koho z politických špiček nebo vládních úředníků zajímá to, že vojáček v Horní Dolní nemá vybavení? Nebo že chlap, který musel z armády odejít v nejle... Zobrazit příspěvek
Podivný nákup radarů pro AČR – pochybení nebo další „prasárna“ z dílny vládních úředníků. Armáda ČR

Podivný nákup radarů pro AČR – pochybení nebo další „prasárna“ z dílny vládních úředníků.

Koncem minulého roku schválil parlament rozpočet na rok 2020 a výhled na roky 2021 a 2022. Prostředky které byly přiděleny ministerstvu obrany ovšem n... Zobrazit příspěvek
Novela Ústavy o vysílání vojáků do zahraničí, bez předchozího souhlasu Parlamentu, je krok správným směrem. Armáda ČR

Novela Ústavy o vysílání vojáků do zahraničí, bez předchozího souhlasu Parlamentu, je krok správným směrem.

Tento týden předložila vláda návrh na změnu ústavy. Tato novela by měla umožnit vyslání vojáků do zahraničí bez předchozího schválení parlamentu. Nove... Zobrazit příspěvek
Kam až může zajít zášť k lidem, kteří položili životy za vlast Armáda ČR

Kam až může zajít zášť k lidem, kteří položili životy za vlast

Ve stínu událostí mezinárodního významu, jako bylo zabití iránského generála nebo odvetný iránský útok na americké základny v Iráku, upadla do po... Zobrazit příspěvek
30 000 vojáků v české armádě? Cesta bude ještě dlouhá Armáda ČR

30 000 vojáků v české armádě? Cesta bude ještě dlouhá

Miliardové nákupy a tisíce nových vojáků, tak by se stručně dala charakterizovat nová koncepce výstavby armády ČR do roku 2030 neboli KVAČR 2030. Rozp... Zobrazit příspěvek
Budou příslušníci aktivních záloh bráni jako plnohodnotní vojáci? Armáda ČR

Budou příslušníci aktivních záloh bráni jako plnohodnotní vojáci?

Když jsem končil základní vojenskou službu, zpívali jsme písničku „jsme parta záložáků své vlasti sloužící“. Ano, v té době bylo naprosto normální, že... Zobrazit příspěvek
Není ministr, jako ministr Armáda ČR

Není ministr, jako ministr

Tak už nám Andrej zveřejnil jména nových členů své vlády. Již od samého začátku, když vyhrál volby a bylo jasné, že bude sestavovat vládu, deklaroval,... Zobrazit příspěvek
Neprůstřelná vesta – hranice mezi životem a smrtí Armáda ČR

Neprůstřelná vesta – hranice mezi životem a smrtí

O tom, že hospodaření AČR a Ministerstva Obrany není ideální, si cvrlikají i vrabci na střeše. Těžko říct, jaký podíl na tomto stavu má neschopnost sa... Zobrazit příspěvek