PluginProbe
Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud! / 3.1.9
Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud! v3.1.9
3.7.5 3.7.4 3.7.3 3.7.2 1-final 3.7.1 3.7.0 3.6.8 3.6.7 3.6.6 3.6.5 3.6.4 3.6.3 3.6.2 3.6.1 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.10 All 111 releases
templately / includes / Builder / Conditions / Page.php

Page.php in Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud! 3.1.9, at includes/Builder/Conditions/Page.php

59 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Templately\Builder\Conditions;
4
5 class Page extends Condition {
6 private $_post_type = 'page';
7 private $post_type;
8
9 public function __construct( $args = [] ) {
10 $this->post_type = get_post_type_object( $this->_post_type );
11
12 parent::__construct( $args );
13 }
14
15 public function get_priority(): int {
16 return 35;
17 }
18
19 public function get_label(): string {
20 return $this->post_type->labels->singular_name;
21 }
22
23 public function get_all_label(): string {
24 return $this->post_type->label;
25 }
26
27 public function get_type(): string {
28 return 'singular';
29 }
30
31 public function get_name(): string {
32 return $this->post_type->name;
33 }
34
35 public function check( $args = [] ): bool {
36 if ( isset( $args['id'] ) ) {
37 $id = (int) $args['id'];
38 if ( $id ) {
39 return is_page() && get_queried_object_id() === $id;
40 }
41 }
42
43 return is_page();
44 }
45
46 public function register_sub_conditions() {
47 $by_author = new PostByAuthor( $this->post_type );
48 $this->register_sub_condition( $by_author );
49 }
50
51 protected function register_controls() {
52 $this->add_control( "posts_query_" . $this->get_name(), [
53 'field' => 'ID',
54 'query_type' => 'posts',
55 'options' => [ '' => 'All' ],
56 'query' => [ 'post_type' => $this->get_name() ]
57 ] );
58 }
59 }