RESTWPPost.php
2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
namespace WP_Rocket\Engine\CriticalPath;
use WP_Error;
/**
* Class RESTWPPost
*
* @package WP_Rocket\Engine\CriticalPath
*/
class RESTWPPost extends RESTWP {
/**
* Part of route namespace for this inherited class item type.
*
* @var string $route_namespace to be set with like post, term.
*/
protected $route_namespace = 'post';
/**
* Validate the item to be sent to generate CPCSS.
*
* @since 3.6
*
* @param int $post_id ID for this post to be validated.
*
* @return true|WP_Error
*/
protected function validate_item_for_generate( $post_id ) {
$status = get_post_status( $post_id );
if ( ! $status ) {
return new WP_Error(
'post_not_exists',
__( 'Requested post does not exist.', 'rocket' ),
[
'status' => 400,
]
);
}
if ( 'publish' !== $status ) {
return new WP_Error(
'post_not_published',
__( 'Cannot generate CPCSS for unpublished post.', 'rocket' ),
[
'status' => 400,
]
);
}
return true;
}
/**
* Validate the item to be sent to delete CPCSS.
*
* @since 3.6
*
* @param int $post_id ID for this post to be validated.
*
* @return true|WP_Error
*/
protected function validate_item_for_delete( $post_id ) {
if ( empty( get_permalink( $post_id ) ) ) {
return new WP_Error(
'post_not_exists',
__( 'Requested post does not exist.', 'rocket' ),
[
'status' => 400,
]
);
}
return true;
}
/**
* Get url for this item.
*
* @since 3.6
*
* @param int $post_id ID for this post to be validated.
*
* @return false|string
*/
protected function get_url( $post_id ) {
return get_permalink( $post_id );
}
/**
* Get CPCSS file path to save CPCSS code into.
*
* @since 3.6
*
* @param int $post_id ID for this post to be validated.
* @param bool $is_mobile Bool identifier for is_mobile CPCSS generation.
*
* @return string
*/
protected function get_path( $post_id, $is_mobile = false ) {
$post_type = get_post_type( $post_id );
return 'posts' . DIRECTORY_SEPARATOR . "{$post_type}-{$post_id}" . ( $is_mobile ? '-mobile' : '' ) . '.css';
}
}