PluginProbe
Polylang / 2.6.2
Polylang v2.6.2
3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 3.8.3 2.7 2.7.0.1 2.7.1 2.7.2 2.7.3 2.7.4 2.8 2.8.1 2.8.2 2.8.3 2.8.4 2.9 2.9.1 2.9.2 3.0 3.0.1 3.0.2 3.0.3 All 233 releases
polylang / include / links-abstract-domain.php

links-abstract-domain.php in Polylang 2.6.2, at include/links-abstract-domain.php

89 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Links model for use when using one domain or subdomain per language
5 *
6 * @since 2.0
7 */
8 abstract class PLL_Links_Abstract_Domain extends PLL_Links_Permalinks {
9
10 /**
11 * Constructor
12 *
13 * @since 2.0
14 *
15 * @param object $model PLL_Model instance.
16 */
17 public function __construct( &$model ) {
18 parent::__construct( $model );
19
20 // Avoid cross domain requests ( mainly for custom fonts ).
21 add_filter( 'content_url', array( $this, 'site_url' ) );
22 add_filter( 'theme_root_uri', array( $this, 'site_url' ) ); // The above filter is not sufficient with WPMU Domain Mapping.
23 add_filter( 'plugins_url', array( $this, 'site_url' ) );
24 add_filter( 'rest_url', array( $this, 'site_url' ) );
25 add_filter( 'upload_dir', array( $this, 'upload_dir' ) );
26 }
27
28 /**
29 * Returns the language based on language code in url
30 * links_model interface
31 *
32 * @since 1.2
33 * @since 2.0 add $url argument
34 *
35 * @param string $url optional, defaults to current url
36 * @return string language slug
37 */
38 public function get_language_from_url( $url = '' ) {
39 if ( empty( $url ) ) {
40 $url = pll_get_requested_url();
41 }
42
43 $host = wp_parse_url( $url, PHP_URL_HOST );
44 return ( $lang = array_search( $host, $this->get_hosts() ) ) ? $lang : '';
45 }
46
47 /**
48 * Sets the home urls
49 *
50 * @since 2.2
51 *
52 * @param object $language
53 */
54 protected function set_home_url( $language ) {
55 $home_url = $this->home_url( $language );
56 $language->set_home_url( $home_url, $home_url ); // Search url and home url are the same
57 }
58
59 /**
60 * Returns the current site url
61 *
62 * @since 1.8
63 *
64 * @param string $url
65 * @return string
66 */
67 public function site_url( $url ) {
68 $lang = $this->get_language_from_url();
69 $lang = $this->model->get_language( $lang );
70 return $this->add_language_to_link( $url, $lang );
71 }
72
73 /**
74 * Fix the domain for upload directory
75 *
76 * @since 2.0.6
77 *
78 * @param array $uploads
79 * @return array
80 */
81 public function upload_dir( $uploads ) {
82 $lang = $this->get_language_from_url();
83 $lang = $this->model->get_language( $lang );
84 $uploads['url'] = $this->add_language_to_link( $uploads['url'], $lang );
85 $uploads['baseurl'] = $this->add_language_to_link( $uploads['baseurl'], $lang );
86 return $uploads;
87 }
88 }
89