PluginProbe
Polylang / 1.5
Polylang v1.5
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
← All changes | include/links-default.php +35 -43 2.7.21.5 View file →
@@ -1,8 +1,8 @@
1 1 <?php
2 2
3 -/**
4 - * Links model for default permalinks
3 +/*
4 + * links model for default permalinks
5 5 * for example mysite.com/?somevar=something&lang=en
6 6 * implements the "links_model interface"
7 7 *
8 8 * @since 1.2
@@ -7,26 +7,25 @@
7 7 *
8 8 * @since 1.2
9 9 */
10 10 class PLL_Links_Default extends PLL_Links_Model {
11 - public $using_permalinks = false;
12 11
13 - /**
14 - * Adds language information to an url
12 + /*
13 + * adds language information to an url
15 14 * links_model interface
16 15 *
17 16 * @since 1.2
18 17 *
19 - * @param string $url url to modify
18 + * @param string $url url to modify
20 19 * @param object $lang language
21 20 * @return string modified url
22 21 */
23 - public function add_language_to_link( $url, $lang ) {
24 - return empty( $lang ) || ( $this->options['hide_default'] && $this->options['default_lang'] == $lang->slug ) ? $url : add_query_arg( 'lang', $lang->slug, $url );
22 + public function add_language_to_link($url, $lang) {
23 + return !empty($lang) && '_get_page_link' != current_filter() ? add_query_arg( 'lang', $lang->slug, $url ) : $url;
25 24 }
26 25
27 - /**
28 - * Removes the language information from an url
26 + /*
27 + * removes the language information from an url
29 28 * links_model interface
30 29 *
31 30 * @since 1.2
32 31 *
@@ -32,14 +31,14 @@
32 31 *
33 32 * @param string $url url to modify
34 33 * @return string modified url
35 34 */
36 - public function remove_language_from_link( $url ) {
37 - return remove_query_arg( 'lang', $url );
35 + public function remove_language_from_link($url) {
36 + return remove_query_arg('lang', $url);
38 37 }
39 38
40 - /**
41 - * Returns the link to the first page
39 + /*
40 + * returns the link to the first page
42 41 * links_model interface
43 42 *
44 43 * @since 1.2
45 44 *
@@ -45,56 +44,49 @@
45 44 *
46 45 * @param string $url url to modify
47 46 * @return string modified url
48 47 */
49 - public function remove_paged_from_link( $url ) {
50 - return remove_query_arg( 'paged', $url );
48 + function remove_paged_from_link($url) {
49 + return remove_query_arg('paged', $url);
51 50 }
52 51
53 - /**
54 - * Returns the link to the paged page when using pretty permalinks
52 +
53 + /*
54 + * returns the link to the paged page when using pretty permalinks
55 55 *
56 56 * @since 1.5
57 57 *
58 - * @param string $url url to modify
59 - * @param int $page
58 + * @param string $url url to modify
59 + * @param int $page
60 60 * @return string modified url
61 61 */
62 - public function add_paged_to_link( $url, $page ) {
63 - return add_query_arg( array( 'paged' => $page ), $url );
62 + public function add_paged_to_link($url, $page) {
63 + return add_query_arg(array('paged' => $page), $url);
64 64 }
65 65
66 - /**
67 - * Gets the language slug from the url if present
66 +
67 + /*
68 + * gets the language slug from the url if present
68 69 * links_model interface
69 70 *
70 71 * @since 1.2
71 - * @since 2.0 add $url argument
72 72 *
73 - * @param string $url optional, defaults to current url
74 73 * @return string language slug
75 74 */
76 - public function get_language_from_url( $url = '' ) {
77 - if ( empty( $url ) ) {
78 - $url = pll_get_requested_url();
79 - }
80 -
81 - $pattern = '#lang=(' . implode( '|', $this->model->get_languages_list( array( 'fields' => 'slug' ) ) ) . ')#';
82 - return preg_match( $pattern, trailingslashit( $url ), $matches ) ? $matches[1] : ''; // $matches[1] is the slug of the requested language
75 + public function get_language_from_url() {
76 + $pattern = '#lang=('.implode('|', $this->model->get_languages_list(array('fields' => 'slug'))).')#';
77 + return preg_match($pattern, trailingslashit($_SERVER['REQUEST_URI']), $matches) ? $matches[1] : ''; // $matches[1] is the slug of the requested language
83 78 }
84 79
85 - /**
86 - * Returns the static front page url
80 + /*
81 + * returns the home url
82 + * links_model interface
87 83 *
88 - * @since 1.8
84 + * @since 1.3.1
89 85 *
90 - * @param object $lang
86 + * @param object $lang PLL_Language object
91 87 * @return string
92 88 */
93 - public function front_page_url( $lang ) {
94 - if ( $this->options['hide_default'] && $lang->slug == $this->options['default_lang'] ) {
95 - return trailingslashit( $this->home );
96 - }
97 - $url = home_url( '/?page_id=' . $lang->page_on_front );
98 - return $this->options['force_lang'] ? $this->add_language_to_link( $url, $lang ) : $url;
89 + public function home_url($lang) {
90 + return $this->options['hide_default'] && $lang->slug == $this->options['default_lang'] ? $this->home : get_term_link($lang, 'language');
99 91 }
100 92 }