Possible arguments are:
- 'site_id' Base site
- 'content_id' post or term_taxonomy ID, *not* term ID
- 'type' see Mlp_Language_Api::get_request_type(),
- 'strict' When TRUE only matching exact translations will be included
- 'search_term' if you want to translate a search
- 'post_type' for post type archives
- 'include_base' bool. Include the base site in returned list
public get_translations ( array $args = [] ) : Inpsyde\MultilingualPress\Common\Type\Translation[] | ||
$args | array | Optional. If left out, some magic happens. |
리턴 | Inpsyde\MultilingualPress\Common\Type\Translation[] | Array of Mlp_Translation instances, site IDs are the keys |
/** * Filters the nav menu items. * * @wp-hook wp_nav_menu_objects * * @param WP_Post[] $items Nav menu items. * * @return WP_Post[] */ public function filter_items(array $items) { $translations = $this->language_api->get_translations(['strict' => false, 'include_base' => true]); foreach ($items as $key => $item) { if ($this->maybe_delete_obsolete_item($item)) { unset($items[$key]); continue; } if ($translations) { $this->prepare_item($item, $translations); } } return $items; }
/** * Query the language API for translations and cache the result. * * @return array */ private function get_translations() { if (array('failed') === $this->translations) { return array(); } /** @var Mlp_Translation_Interface[] $translations */ $translations = $this->language_api->get_translations(array('include_base' => TRUE)); if (empty($translations)) { $this->translations = array('failed'); return array(); } $prepared = array(); foreach ($translations as $translation) { $language = $translation->get_language(); $language_name = $language->get_name('http'); $url = $translation->get_remote_url(); if ($url) { $prepared[$language_name] = $url; } } if (empty($prepared)) { $this->translations = array('failed'); return array(); } $this->translations = $prepared; return $this->translations; }
/** * Returns the translations. * * @return Translation[] */ private function get_translations() { if (!is_singular()) { return []; } if ($this->translations) { return $this->translations; } $this->translations = $this->language_api->get_translations(['type' => 'post']); return $this->translations; }