PluginProbe
Polylang / 2.3.6
Polylang v2.3.6
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.3.6, at include/links-abstract-domain.php

84 lines 2.0 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( 'plugins_url', array( $this, 'site_url' ) );
23 add_filter( 'rest_url', array( $this, 'site_url' ) );
24 add_filter( 'upload_dir', array( $this, 'upload_dir' ) );
25 }
26
27 /**
28 * Returns the language based on language code in url
29 * links_model interface
30 *
31 * @since 1.2
32 * @since 2.0 add $url argument
33 *
34 * @param string $url optional, defaults to current url
35 * @return string language slug
36 */
37 public function get_language_from_url( $url = '' ) {
38 $host = empty( $url ) ? $_SERVER['HTTP_HOST'] : parse_url( $url, PHP_URL_HOST );
39 return ( $lang = array_search( $host, $this->get_hosts() ) ) ? $lang : '';
40 }
41
42 /**
43 * Sets the home urls
44 *
45 * @since 2.2
46 *
47 * @param object $language
48 */
49 protected function set_home_url( $language ) {
50 $home_url = $this->home_url( $language );
51 $language->set_home_url( $home_url, $home_url ); // Search url and home url are the same
52 }
53
54 /**
55 * Returns the current site url
56 *
57 * @since 1.8
58 *
59 * @param string $url
60 * @return string
61 */
62 public function site_url( $url ) {
63 $lang = $this->get_language_from_url();
64 $lang = $this->model->get_language( $lang );
65 return $this->add_language_to_link( $url, $lang );
66 }
67
68 /**
69 * Fix the domain for upload directory
70 *
71 * @since 2.0.6
72 *
73 * @param array $uploads
74 * @return array
75 */
76 public function upload_dir( $uploads ) {
77 $lang = $this->get_language_from_url();
78 $lang = $this->model->get_language( $lang );
79 $uploads['url'] = $this->add_language_to_link( $uploads['url'], $lang );
80 $uploads['baseurl'] = $this->add_language_to_link( $uploads['baseurl'], $lang );
81 return $uploads;
82 }
83 }
84