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