options['domains'][ $lang->slug ] ) ) { $url = str_replace( $this->home, $this->options['domains'][ $lang->slug ], $url ); } return $url; } /** * Returns the url without language code * links_model interface * * @since 1.2 * * @param string $url url to modify * @return string modified url */ public function remove_language_from_link( $url ) { if ( ! empty( $this->options['domains'] ) ) { $url = str_replace( ( is_ssl() ? 'https://' : 'http://' ) . parse_url( $url, PHP_URL_HOST ) . parse_url( $this->home, PHP_URL_PATH ), $this->home, $url ); } return $url; } /** * Returns the language based on language code in url * links_model interface * * @since 1.2 * @since 2.0 add $url argument * * @param string $url optional, defaults to current url * @return string language slug */ public function get_language_from_url( $url = '' ) { $host = empty( $url ) ? $_SERVER['HTTP_HOST'] : parse_url( $url, PHP_URL_HOST ); return ( $lang = array_search( ( is_ssl() ? 'https://' : 'http://' ) . $host . parse_url( $this->home, PHP_URL_PATH ), $this->options['domains'] ) ) ? $lang : ''; } /** * Returns the home url * links_model interface * * @since 1.3.1 * * @param object $lang PLL_Language object * @return string */ function home_url( $lang ) { return trailingslashit( empty( $this->options['domains'][ $lang->slug ] ) ? $this->home : $this->options['domains'][ $lang->slug ] ); } /** * Get hosts managed on the website * * @since 1.5 * * @return array list of hosts */ public function get_hosts() { $hosts = array(); foreach ( $this->options['domains'] as $domain ) { $hosts[] = parse_url( $domain, PHP_URL_HOST ); } return $hosts; } }