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