PluginProbe
Polylang / 2.0.3
Polylang v2.0.3
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.php +25 -1 2.7.12.0.3 View file →
@@ -26,11 +26,35 @@
26 26 *
27 27 * @since 1.3
28 28 *
29 29 * @param object|string $language
30 - * @param bool $is_search optional whether we need the home url for a search form, defaults to false
30 + * @param bool $is_search optional wether we need the home url for a search form, defaults to false
31 31 */
32 32 public function get_home_url( $language, $is_search = false ) {
33 33 $language = is_object( $language ) ? $language : $this->model->get_language( $language );
34 34 return $is_search ? $language->search_url : $language->home_url;
35 + }
36 +
37 + /**
38 + * Checks if the current user can read the post
39 + *
40 + * @since 1.5
41 + *
42 + * @param int $post_id
43 + * @return bool
44 + */
45 + public function current_user_can_read( $post_id ) {
46 + $post = get_post( $post_id );
47 +
48 + if ( 'inherit' === $post->post_status ) {
49 + $post = get_post( $post->post_parent );
50 + }
51 +
52 + if ( in_array( $post->post_status, get_post_stati( array( 'public' => true ) ) ) ) {
53 + return true;
54 + }
55 +
56 + $post_type_object = get_post_type_object( $post->post_type );
57 + $user = wp_get_current_user();
58 + return is_user_logged_in() && ( current_user_can( $post_type_object->cap->read_private_posts ) || $user->ID == $post->post_author ); // Comparison must not be strict!
35 59 }
36 60 }