PluginProbe
Polylang / 1.8.5
Polylang v1.8.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
polylang / include / links-default.php

links-default.php in Polylang 1.8.5, at include/links-default.php

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