Version Description
- internal improvements without functional changes
Download this release
Release Info
Developer | petersplugins |
Plugin | 404page – your smart custom 404 error page |
Version | 11.3.1 |
Comparing to | |
See all releases |
Code changes from version 11.3.0 to 11.3.1
- 404page.php +1 -1
- assets/img/pluginicon.png +0 -0
- inc/class-404page-admin.php +3 -15
- inc/class-404page-block-editor.php +1 -1
- inc/class-404page-classic-editor.php +1 -1
- inc/class-404page-deprecated.php +1 -1
- inc/class-404page-settings.php +3 -3
- inc/class-404page.php +1 -1
- inc/ppf/assets/css/pp-admin-page.css +15 -33
- inc/ppf/loader.php +2 -2
- inc/ppf/ppf-admin.php +22 -14
- inc/ppf/ppf-class.php +4 -4
- inc/ppf/ppf-plugin-addon.php +4 -4
- inc/ppf/ppf-plugin.php +4 -4
- inc/ppf/ppf-settings.php +7 -7
- inc/ppf/ppf-subclass.php +4 -4
- loader.php +1 -1
- readme.txt +13 -6
404page.php
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
* Plugin Name: 404page - your smart custom 404 error page
|
10 |
* Plugin URI: https://petersplugins.com/404page/
|
11 |
* Description: Custom 404 the easy way! Set any page as custom 404 error page. No coding needed. Works with (almost) every Theme.
|
12 |
-
* Version: 11.3.
|
13 |
* Author: Peter Raschendorfer
|
14 |
* Author URI: https://petersplugins.com
|
15 |
* Text Domain: 404page
|
9 |
* Plugin Name: 404page - your smart custom 404 error page
|
10 |
* Plugin URI: https://petersplugins.com/404page/
|
11 |
* Description: Custom 404 the easy way! Set any page as custom 404 error page. No coding needed. Works with (almost) every Theme.
|
12 |
+
* Version: 11.3.1
|
13 |
* Author: Peter Raschendorfer
|
14 |
* Author URI: https://petersplugins.com
|
15 |
* Text Domain: 404page
|
assets/img/pluginicon.png
DELETED
Binary file
|
inc/class-404page-admin.php
CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
15 |
*/
|
16 |
if ( !class_exists( 'PP_404Page_Admin' ) ) {
|
17 |
|
18 |
-
class PP_404Page_Admin extends
|
19 |
|
20 |
|
21 |
/**
|
@@ -34,16 +34,14 @@ if ( !class_exists( 'PP_404Page_Admin' ) ) {
|
|
34 |
'button_no' => esc_html( 'Not really', '404page' ),
|
35 |
'button_later' => esc_html( 'Ask me later', '404page' ),
|
36 |
'button_close' => esc_html( 'Never show again', '404page' ),
|
37 |
-
'like' => esc_html( 'I\'m really glad you like it. I do not ask for a donation. All I\'m asking you for is to give it a good rating. Thank you very much.
|
38 |
'button_rate' => esc_html( 'Yes, I\'d like to rate it', '404page' ),
|
39 |
-
'button_fb' => esc_html( 'Open Facebook page', '404page' ),
|
40 |
'dislike' => esc_html( 'I\'m really sorry you don\'t like it. Would you please do me a favor and drop me line, why you are not happy with it? Maybe I can do better...', '404page' ),
|
41 |
'button_contact' => esc_html( 'Yes sure', '404page' )
|
42 |
),
|
43 |
array(
|
44 |
'rate' => 'https://wordpress.org/support/plugin/' . $this->core()->get_plugin_slug() . '/reviews/',
|
45 |
-
'contact' => 'https://petersplugins.com/contact/'
|
46 |
-
'facebook' => 'https://www.facebook.com/petersplugins/'
|
47 |
));
|
48 |
|
49 |
$this->add_actions( array(
|
@@ -517,16 +515,6 @@ if ( !class_exists( 'PP_404Page_Admin' ) ) {
|
|
517 |
'link' => 'https://wordpress.org/support/plugin/' . $this->core()->get_plugin_slug(),
|
518 |
'title' => __( 'Support', '404page' ),
|
519 |
'icon' => 'dashicons-editor-help'
|
520 |
-
),
|
521 |
-
array(
|
522 |
-
'link' => 'https://petersplugins.com/',
|
523 |
-
'title' => __( 'Authors Website', '404page' ),
|
524 |
-
'icon' => 'dashicons-admin-home'
|
525 |
-
),
|
526 |
-
array(
|
527 |
-
'link' => 'https://www.facebook.com/petersplugins/',
|
528 |
-
'title' => __( 'Authors Facebook Page', '404page' ),
|
529 |
-
'icon' => 'dashicons-facebook-alt'
|
530 |
)
|
531 |
|
532 |
) );
|
15 |
*/
|
16 |
if ( !class_exists( 'PP_404Page_Admin' ) ) {
|
17 |
|
18 |
+
class PP_404Page_Admin extends PPF08_Admin {
|
19 |
|
20 |
|
21 |
/**
|
34 |
'button_no' => esc_html( 'Not really', '404page' ),
|
35 |
'button_later' => esc_html( 'Ask me later', '404page' ),
|
36 |
'button_close' => esc_html( 'Never show again', '404page' ),
|
37 |
+
'like' => esc_html( 'I\'m really glad you like it. I do not ask for a donation. All I\'m asking you for is to give it a good rating. Thank you very much.', '404page' ),
|
38 |
'button_rate' => esc_html( 'Yes, I\'d like to rate it', '404page' ),
|
|
|
39 |
'dislike' => esc_html( 'I\'m really sorry you don\'t like it. Would you please do me a favor and drop me line, why you are not happy with it? Maybe I can do better...', '404page' ),
|
40 |
'button_contact' => esc_html( 'Yes sure', '404page' )
|
41 |
),
|
42 |
array(
|
43 |
'rate' => 'https://wordpress.org/support/plugin/' . $this->core()->get_plugin_slug() . '/reviews/',
|
44 |
+
'contact' => 'https://petersplugins.com/contact/'
|
|
|
45 |
));
|
46 |
|
47 |
$this->add_actions( array(
|
515 |
'link' => 'https://wordpress.org/support/plugin/' . $this->core()->get_plugin_slug(),
|
516 |
'title' => __( 'Support', '404page' ),
|
517 |
'icon' => 'dashicons-editor-help'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
518 |
)
|
519 |
|
520 |
) );
|
inc/class-404page-block-editor.php
CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
15 |
*/
|
16 |
if ( !class_exists( 'PP_404Page_BlockEditor' ) ) {
|
17 |
|
18 |
-
class PP_404Page_BlockEditor extends
|
19 |
|
20 |
/**
|
21 |
* Do Init
|
15 |
*/
|
16 |
if ( !class_exists( 'PP_404Page_BlockEditor' ) ) {
|
17 |
|
18 |
+
class PP_404Page_BlockEditor extends PPF08_SubClass {
|
19 |
|
20 |
/**
|
21 |
* Do Init
|
inc/class-404page-classic-editor.php
CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
15 |
*/
|
16 |
if ( !class_exists( 'PP_404Page_ClassicEditor' ) ) {
|
17 |
|
18 |
-
class PP_404Page_ClassicEditor extends
|
19 |
|
20 |
/**
|
21 |
* Do Init
|
15 |
*/
|
16 |
if ( !class_exists( 'PP_404Page_ClassicEditor' ) ) {
|
17 |
|
18 |
+
class PP_404Page_ClassicEditor extends PPF08_SubClass {
|
19 |
|
20 |
/**
|
21 |
* Do Init
|
inc/class-404page-deprecated.php
CHANGED
@@ -17,7 +17,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
17 |
*/
|
18 |
if ( !class_exists( 'PP_404Page_Deprecated' ) ) {
|
19 |
|
20 |
-
class PP_404Page_Deprecated extends
|
21 |
|
22 |
/**
|
23 |
* Do Init
|
17 |
*/
|
18 |
if ( !class_exists( 'PP_404Page_Deprecated' ) ) {
|
19 |
|
20 |
+
class PP_404Page_Deprecated extends PPF08_SubClass {
|
21 |
|
22 |
/**
|
23 |
* Do Init
|
inc/class-404page-settings.php
CHANGED
@@ -17,15 +17,15 @@ if ( ! defined( 'WPINC' ) ) {
|
|
17 |
*/
|
18 |
if ( !class_exists( 'PP_404Page_Settings' ) ) {
|
19 |
|
20 |
-
class PP_404Page_Settings extends
|
21 |
|
22 |
/**
|
23 |
* sanitize settings
|
24 |
*
|
25 |
* @since 11.0.0
|
26 |
-
* @access
|
27 |
*/
|
28 |
-
|
29 |
|
30 |
// Set page ID to -1 if the page does not exist or is not published
|
31 |
|
17 |
*/
|
18 |
if ( !class_exists( 'PP_404Page_Settings' ) ) {
|
19 |
|
20 |
+
class PP_404Page_Settings extends PPF08_Settings {
|
21 |
|
22 |
/**
|
23 |
* sanitize settings
|
24 |
*
|
25 |
* @since 11.0.0
|
26 |
+
* @access public
|
27 |
*/
|
28 |
+
public function sanitize_settings() {
|
29 |
|
30 |
// Set page ID to -1 if the page does not exist or is not published
|
31 |
|
inc/class-404page.php
CHANGED
@@ -23,7 +23,7 @@ if ( ! defined( 'PP_404' ) ) {
|
|
23 |
if ( !class_exists( 'PP_404Page' ) ) {
|
24 |
|
25 |
|
26 |
-
class PP_404Page extends
|
27 |
|
28 |
|
29 |
/**
|
23 |
if ( !class_exists( 'PP_404Page' ) ) {
|
24 |
|
25 |
|
26 |
+
class PP_404Page extends PPF08_Plugin {
|
27 |
|
28 |
|
29 |
/**
|
inc/ppf/assets/css/pp-admin-page.css
CHANGED
@@ -28,26 +28,26 @@ body {
|
|
28 |
}
|
29 |
|
30 |
.pp-admin-page-header nav {
|
31 |
-
margin-right:
|
32 |
text-align: right;
|
33 |
line-height: 1;
|
|
|
34 |
}
|
35 |
|
36 |
.rtl .pp-admin-page-header nav {
|
37 |
text-align: left;
|
38 |
margin-right: 0;
|
39 |
-
margin-left:
|
40 |
}
|
41 |
|
42 |
.pp-admin-page-header nav a {
|
43 |
display: inline-block;
|
44 |
-
padding:
|
45 |
color: #434343;
|
46 |
text-decoration: none;
|
47 |
font-size: 12px;
|
48 |
-
height:
|
49 |
-
line-height:
|
50 |
-
border-bottom: 2px solid transparent;
|
51 |
}
|
52 |
|
53 |
.pp-admin-page-header nav a span.text {
|
@@ -63,40 +63,22 @@ body {
|
|
63 |
@media only screen and (max-width: 960px) {
|
64 |
.pp-admin-page-header nav a {
|
65 |
font-size: 36px;
|
66 |
-
padding:
|
67 |
}
|
68 |
.pp-admin-page-header nav a span.text {
|
69 |
display: none;
|
70 |
}
|
71 |
}
|
72 |
|
73 |
-
.pp-admin-page-header nav a:hover, .pp-admin-page-header nav a:focus {
|
74 |
-
border-bottom-color: #434343;
|
75 |
-
}
|
76 |
-
|
77 |
.pp-admin-page-title {
|
78 |
-
padding:
|
|
|
79 |
}
|
80 |
|
81 |
.pp-admin-page-title h1 {
|
82 |
-
line-height: 64px;
|
83 |
-
padding: 0 0 0 80px;
|
84 |
-
background-image: url(../../../../assets/img/pluginicon.png);
|
85 |
-
background-repeat: no-repeat;
|
86 |
color: #434343;
|
87 |
-
|
88 |
-
|
89 |
-
.rtl .pp-admin-page-title h1 {
|
90 |
-
padding-left: 0;
|
91 |
-
padding-right: 80px;
|
92 |
-
background-position: right top;
|
93 |
-
}
|
94 |
-
|
95 |
-
@media only screen and (max-width: 960px) {
|
96 |
-
.pp-admin-page-title h1 {
|
97 |
-
line-height: 1.2;
|
98 |
-
min-height: 64px;
|
99 |
-
}
|
100 |
}
|
101 |
|
102 |
.pp-admin-page-header .tab-navigation {
|
@@ -204,13 +186,13 @@ body {
|
|
204 |
|
205 |
.pp-admin-page-wrapper .form-table td {
|
206 |
padding: 0;
|
207 |
-
margin-bottom:
|
208 |
}
|
209 |
|
210 |
.pp-admin-page-wrapper .form-table td p {
|
211 |
padding: 0;
|
212 |
line-height: 1.2;
|
213 |
-
margin-bottom:
|
214 |
}
|
215 |
|
216 |
.pp-admin-page-wrapper .form-table th {
|
@@ -227,11 +209,11 @@ body {
|
|
227 |
|
228 |
.pp-admin-page-wrapper a {
|
229 |
color: #4D648D;
|
230 |
-
transition:
|
231 |
}
|
232 |
|
233 |
.pp-admin-page-wrapper a:hover, .pp-admin-page-wrapper a:focus {
|
234 |
-
color: #
|
235 |
}
|
236 |
|
237 |
.pp-admin-page-wrapper .toggle {
|
28 |
}
|
29 |
|
30 |
.pp-admin-page-header nav {
|
31 |
+
margin-right: 24px;
|
32 |
text-align: right;
|
33 |
line-height: 1;
|
34 |
+
padding-top: 6px;
|
35 |
}
|
36 |
|
37 |
.rtl .pp-admin-page-header nav {
|
38 |
text-align: left;
|
39 |
margin-right: 0;
|
40 |
+
margin-left: 24px;
|
41 |
}
|
42 |
|
43 |
.pp-admin-page-header nav a {
|
44 |
display: inline-block;
|
45 |
+
padding: 0 3px;
|
46 |
color: #434343;
|
47 |
text-decoration: none;
|
48 |
font-size: 12px;
|
49 |
+
height: 24px;
|
50 |
+
line-height: 24px;
|
|
|
51 |
}
|
52 |
|
53 |
.pp-admin-page-header nav a span.text {
|
63 |
@media only screen and (max-width: 960px) {
|
64 |
.pp-admin-page-header nav a {
|
65 |
font-size: 36px;
|
66 |
+
padding: 0 12px;
|
67 |
}
|
68 |
.pp-admin-page-header nav a span.text {
|
69 |
display: none;
|
70 |
}
|
71 |
}
|
72 |
|
|
|
|
|
|
|
|
|
73 |
.pp-admin-page-title {
|
74 |
+
padding: 12px 24px;
|
75 |
+
color: #434343;
|
76 |
}
|
77 |
|
78 |
.pp-admin-page-title h1 {
|
|
|
|
|
|
|
|
|
79 |
color: #434343;
|
80 |
+
margin: 0;
|
81 |
+
padding: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
83 |
|
84 |
.pp-admin-page-header .tab-navigation {
|
186 |
|
187 |
.pp-admin-page-wrapper .form-table td {
|
188 |
padding: 0;
|
189 |
+
margin-bottom: 24px;
|
190 |
}
|
191 |
|
192 |
.pp-admin-page-wrapper .form-table td p {
|
193 |
padding: 0;
|
194 |
line-height: 1.2;
|
195 |
+
margin-bottom: 24px;
|
196 |
}
|
197 |
|
198 |
.pp-admin-page-wrapper .form-table th {
|
209 |
|
210 |
.pp-admin-page-wrapper a {
|
211 |
color: #4D648D;
|
212 |
+
transition: color 0.3s ease;
|
213 |
}
|
214 |
|
215 |
.pp-admin-page-wrapper a:hover, .pp-admin-page-wrapper a:focus {
|
216 |
+
color: #0073aa;
|
217 |
}
|
218 |
|
219 |
.pp-admin-page-wrapper .toggle {
|
inc/ppf/loader.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
/**
|
4 |
* Plugin Foundation Loader
|
5 |
*
|
6 |
-
* Peter's Plugins Foundation
|
7 |
*
|
8 |
-
* @package
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
3 |
/**
|
4 |
* Plugin Foundation Loader
|
5 |
*
|
6 |
+
* Peter's Plugins Foundation 08
|
7 |
*
|
8 |
+
* @package PPF08
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
inc/ppf/ppf-admin.php
CHANGED
@@ -3,17 +3,17 @@
|
|
3 |
/**
|
4 |
* Admin Class
|
5 |
*
|
6 |
-
* Peter's Plugins Foundation
|
7 |
*
|
8 |
-
* @package
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
-
if ( !class_exists( '
|
14 |
|
15 |
|
16 |
-
abstract class
|
17 |
|
18 |
|
19 |
/**
|
@@ -152,10 +152,12 @@ if ( !class_exists( 'PPF07_Admin' ) ) {
|
|
152 |
* since PPF05
|
153 |
* string $html => HTML code to add to this section
|
154 |
* array $fields => multidimensional array of fields to add
|
155 |
-
* string $key =>
|
156 |
-
* string $callback =>
|
157 |
-
*
|
158 |
-
|
|
|
|
|
159 |
* @access private
|
160 |
*/
|
161 |
private function add_settings( $settings ) {
|
@@ -178,8 +180,16 @@ if ( !class_exists( 'PPF07_Admin' ) ) {
|
|
178 |
$callback = array( $this, $field['callback'] );
|
179 |
|
180 |
}
|
181 |
-
|
182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
}
|
185 |
|
@@ -551,15 +561,13 @@ if ( !class_exists( 'PPF07_Admin' ) ) {
|
|
551 |
* string $button_no => e.g. 'Not really'
|
552 |
* string $button_later => e.g. 'Ask me later'
|
553 |
* string $button_close => e.g. 'Never show again'
|
554 |
-
* string $like => e.g. 'I'm really glad you like it. I do not ask for a donation. All I'm asking you for is to give it a good rating. Thank you very much.
|
555 |
* string $button_rate => e.g. 'Yes, I'd like to rate it'
|
556 |
-
* string $button_fb => e.g. 'Open Facebook page'
|
557 |
* string $dislike => e.g. 'I'm really sorry you don't like it. Would you please do me a favor and drop me line, why you are not happy with it? Maybe I can do better...'
|
558 |
* string $button_contact => e.g. 'Yes sure'
|
559 |
* @param array $links array of links
|
560 |
* string $rate => e.g. https://wordpress.org/support/plugin/example/reviews/
|
561 |
* string $contact => e.g. https://petersplugins.com/contact/
|
562 |
-
* string $facebook => e.g.https://www.facebook.com/petersplugins/
|
563 |
* @access public
|
564 |
*/
|
565 |
public function init_rating_notice( $content, $links ) {
|
@@ -611,7 +619,7 @@ if ( !class_exists( 'PPF07_Admin' ) ) {
|
|
611 |
</div>
|
612 |
<div id="<?php echo $prefix; ?>-review-step-like" class="<?php echo $prefix; ?>-review-notice-step">
|
613 |
<p><?php echo $content['like']; ?></p>
|
614 |
-
<p><a class="button button-primary" href="<?php echo $links['rate']; ?>"><?php echo $content['button_rate']; ?></a
|
615 |
</div>
|
616 |
<div id="<?php echo $prefix; ?>-review-step-dislike" class="<?php echo $prefix; ?>-review-notice-step">
|
617 |
<p><?php echo $content['dislike']; ?></p>
|
3 |
/**
|
4 |
* Admin Class
|
5 |
*
|
6 |
+
* Peter's Plugins Foundation 08
|
7 |
*
|
8 |
+
* @package PPF08
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
+
if ( !class_exists( 'PPF08_Admin' ) ) {
|
14 |
|
15 |
|
16 |
+
abstract class PPF08_Admin extends PPF08_SubClass {
|
17 |
|
18 |
|
19 |
/**
|
152 |
* since PPF05
|
153 |
* string $html => HTML code to add to this section
|
154 |
* array $fields => multidimensional array of fields to add
|
155 |
+
* string $key => key of the option array
|
156 |
+
* string $callback => function to call
|
157 |
+
* as of PPF04 this can be an array to enable external callbacks
|
158 |
+
* array $callbackargs => array of arguments to pass to callback function
|
159 |
+
* introduced in PPF08
|
160 |
+
* bool $nosubmit => this section should not show the submit button
|
161 |
* @access private
|
162 |
*/
|
163 |
private function add_settings( $settings ) {
|
180 |
$callback = array( $this, $field['callback'] );
|
181 |
|
182 |
}
|
183 |
+
|
184 |
+
$callbackargs = false;
|
185 |
+
|
186 |
+
if ( isset( $field['callbackargs'] ) && is_array( $field['callbackargs'] ) ) {
|
187 |
+
|
188 |
+
$callbackargs = $field['callbackargs'];
|
189 |
+
|
190 |
+
}
|
191 |
+
|
192 |
+
add_settings_field( $field_id, '' , $callback, $this->core()->get_plugin_slug(), $section_id, $callbackargs );
|
193 |
|
194 |
}
|
195 |
|
561 |
* string $button_no => e.g. 'Not really'
|
562 |
* string $button_later => e.g. 'Ask me later'
|
563 |
* string $button_close => e.g. 'Never show again'
|
564 |
+
* string $like => e.g. 'I'm really glad you like it. I do not ask for a donation. All I'm asking you for is to give it a good rating. Thank you very much.
|
565 |
* string $button_rate => e.g. 'Yes, I'd like to rate it'
|
|
|
566 |
* string $dislike => e.g. 'I'm really sorry you don't like it. Would you please do me a favor and drop me line, why you are not happy with it? Maybe I can do better...'
|
567 |
* string $button_contact => e.g. 'Yes sure'
|
568 |
* @param array $links array of links
|
569 |
* string $rate => e.g. https://wordpress.org/support/plugin/example/reviews/
|
570 |
* string $contact => e.g. https://petersplugins.com/contact/
|
|
|
571 |
* @access public
|
572 |
*/
|
573 |
public function init_rating_notice( $content, $links ) {
|
619 |
</div>
|
620 |
<div id="<?php echo $prefix; ?>-review-step-like" class="<?php echo $prefix; ?>-review-notice-step">
|
621 |
<p><?php echo $content['like']; ?></p>
|
622 |
+
<p><a class="button button-primary" href="<?php echo $links['rate']; ?>"><?php echo $content['button_rate']; ?></a></p>
|
623 |
</div>
|
624 |
<div id="<?php echo $prefix; ?>-review-step-dislike" class="<?php echo $prefix; ?>-review-notice-step">
|
625 |
<p><?php echo $content['dislike']; ?></p>
|
inc/ppf/ppf-class.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
/**
|
4 |
* Base Class
|
5 |
*
|
6 |
-
* Peter's Plugins Foundation
|
7 |
*
|
8 |
-
* @package
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
@@ -19,10 +19,10 @@
|
|
19 |
}
|
20 |
|
21 |
|
22 |
-
if ( !class_exists( '
|
23 |
|
24 |
|
25 |
-
abstract class
|
26 |
|
27 |
|
28 |
/**
|
3 |
/**
|
4 |
* Base Class
|
5 |
*
|
6 |
+
* Peter's Plugins Foundation 08
|
7 |
*
|
8 |
+
* @package PPF08
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
19 |
}
|
20 |
|
21 |
|
22 |
+
if ( !class_exists( 'PPF08_Class' ) ) {
|
23 |
|
24 |
|
25 |
+
abstract class PPF08_Class {
|
26 |
|
27 |
|
28 |
/**
|
inc/ppf/ppf-plugin-addon.php
CHANGED
@@ -3,17 +3,17 @@
|
|
3 |
/**
|
4 |
* Plugin Addon Base Class
|
5 |
*
|
6 |
-
* Peter's Plugins Foundation
|
7 |
*
|
8 |
-
* @package
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
|
14 |
-
if ( !class_exists( '
|
15 |
|
16 |
-
abstract class
|
17 |
|
18 |
/**
|
19 |
* Base Plugin Name
|
3 |
/**
|
4 |
* Plugin Addon Base Class
|
5 |
*
|
6 |
+
* Peter's Plugins Foundation 08
|
7 |
*
|
8 |
+
* @package PPF08
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
|
14 |
+
if ( !class_exists( 'PPF08_Plugin_Addon' ) ) {
|
15 |
|
16 |
+
abstract class PPF08_Plugin_Addon extends PPF08_Plugin {
|
17 |
|
18 |
/**
|
19 |
* Base Plugin Name
|
inc/ppf/ppf-plugin.php
CHANGED
@@ -3,17 +3,17 @@
|
|
3 |
/**
|
4 |
* Plugin Base Class
|
5 |
*
|
6 |
-
* Peter's Plugins Foundation
|
7 |
*
|
8 |
-
* @package
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
|
14 |
-
if ( !class_exists( '
|
15 |
|
16 |
-
abstract class
|
17 |
|
18 |
/**
|
19 |
* Instances
|
3 |
/**
|
4 |
* Plugin Base Class
|
5 |
*
|
6 |
+
* Peter's Plugins Foundation 08
|
7 |
*
|
8 |
+
* @package PPF08
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
|
14 |
+
if ( !class_exists( 'PPF08_Plugin' ) ) {
|
15 |
|
16 |
+
abstract class PPF08_Plugin extends PPF08_Class {
|
17 |
|
18 |
/**
|
19 |
* Instances
|
inc/ppf/ppf-settings.php
CHANGED
@@ -3,17 +3,17 @@
|
|
3 |
/**
|
4 |
* Settings Class
|
5 |
*
|
6 |
-
* Peter's Plugins Foundation
|
7 |
*
|
8 |
-
* @package
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
-
if ( !class_exists( '
|
14 |
|
15 |
|
16 |
-
abstract class
|
17 |
|
18 |
/**
|
19 |
* name of settings in databse (meta_key)
|
@@ -107,13 +107,13 @@ if ( !class_exists( 'PPF07_Settings' ) ) {
|
|
107 |
|
108 |
|
109 |
/**
|
110 |
-
|
111 |
* this function can be used to sanitize settings after they are loaded
|
112 |
*
|
113 |
* @since PPF01
|
114 |
-
* @access
|
115 |
*/
|
116 |
-
|
117 |
|
118 |
// Just to be defined here
|
119 |
|
3 |
/**
|
4 |
* Settings Class
|
5 |
*
|
6 |
+
* Peter's Plugins Foundation 08
|
7 |
*
|
8 |
+
* @package PPF08
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
+
if ( !class_exists( 'PPF08_Settings' ) ) {
|
14 |
|
15 |
|
16 |
+
abstract class PPF08_Settings extends PPF08_SubClass {
|
17 |
|
18 |
/**
|
19 |
* name of settings in databse (meta_key)
|
107 |
|
108 |
|
109 |
/**
|
110 |
+
* sanitize settings
|
111 |
* this function can be used to sanitize settings after they are loaded
|
112 |
*
|
113 |
* @since PPF01
|
114 |
+
* @access public
|
115 |
*/
|
116 |
+
public function sanitize_settings() {
|
117 |
|
118 |
// Just to be defined here
|
119 |
|
inc/ppf/ppf-subclass.php
CHANGED
@@ -3,17 +3,17 @@
|
|
3 |
/**
|
4 |
* Plugin Base Sub-Class
|
5 |
*
|
6 |
-
* Peter's Plugins Foundation
|
7 |
*
|
8 |
-
* @package
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
-
if ( !class_exists( '
|
14 |
|
15 |
|
16 |
-
abstract class
|
17 |
|
18 |
/**
|
19 |
* reference to core class
|
3 |
/**
|
4 |
* Plugin Base Sub-Class
|
5 |
*
|
6 |
+
* Peter's Plugins Foundation 08
|
7 |
*
|
8 |
+
* @package PPF08
|
9 |
* @author Peter Raschendorfer
|
10 |
* @license GPL2+
|
11 |
*/
|
12 |
|
13 |
+
if ( !class_exists( 'PPF08_SubClass' ) ) {
|
14 |
|
15 |
|
16 |
+
abstract class PPF08_SubClass extends PPF08_Class {
|
17 |
|
18 |
/**
|
19 |
* reference to core class
|
loader.php
CHANGED
@@ -42,7 +42,7 @@ function pp_404page() {
|
|
42 |
'slug' => pathinfo( dirname( __FILE__ ) . '/404page.php', PATHINFO_FILENAME ),
|
43 |
'name' => '404page - your smart custom 404 error page',
|
44 |
'shortname' => '404page',
|
45 |
-
'version' => '11.3.
|
46 |
) );
|
47 |
|
48 |
}
|
42 |
'slug' => pathinfo( dirname( __FILE__ ) . '/404page.php', PATHINFO_FILENAME ),
|
43 |
'name' => '404page - your smart custom 404 error page',
|
44 |
'shortname' => '404page',
|
45 |
+
'version' => '11.3.1'
|
46 |
) );
|
47 |
|
48 |
}
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: petersplugins
|
|
3 |
Tags: page, 404, error, error page, 404 page, page not found, page not found error, 404 error page, missing, broken link, template, 404 link, seo, custom 404, custom 404 page, custom 404 error, custom 404 error page, customize 404, customize 404 page, customize 404 error page, classicpress
|
4 |
Requires at least: 4.0
|
5 |
Tested up to: 5.9
|
6 |
-
Stable tag: 11.3.
|
7 |
Requires PHP: 5.4
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -22,6 +22,11 @@ This handy plugin allows you to easily create your own 404 error page without an
|
|
22 |
|
23 |
Create your custom 404 error page just like any other page using the WordPress Page Editor. Then go to 'Appearance' -> '404 Error Page' and select the created page as your custom 404 error page. That's it!
|
24 |
|
|
|
|
|
|
|
|
|
|
|
25 |
== Why use this plugin? ==
|
26 |
|
27 |
Different from other similar plugins the 404page plugin **does not create redirects**. That’s **quite important** because a correct code 404 is delivered which tells search engines that the page does not exist and has to be removed from the index.
|
@@ -140,11 +145,6 @@ This plugin is compatible with [ClassicPress](https://www.classicpress.net/).
|
|
140 |
* **[smart User Slug Hider](https://wordpress.org/plugins/smart-user-slug-hider/)** - Hide usernames in author pages URLs to enhance security
|
141 |
* [See all](https://profiles.wordpress.org/petersplugins/#content-plugins)
|
142 |
|
143 |
-
== Stay up to date ==
|
144 |
-
|
145 |
-
[Follow me on Facebook](https://www.facebook.com/petersplugins/)
|
146 |
-
[YouTube Channel](https://www.youtube.com/channel/UCDnOjy99A7Oeq2dTWxqWEIA)
|
147 |
-
|
148 |
== Screenshots ==
|
149 |
|
150 |
1. The default 404 error page of the Twenty Twenty theme
|
@@ -172,6 +172,10 @@ Please use the [Support Forum](https://wordpress.org/support/plugin/404page).
|
|
172 |
|
173 |
== Changelog ==
|
174 |
|
|
|
|
|
|
|
|
|
175 |
= 11.3.0 (2021-01-06) =
|
176 |
* new option to always send an 410 instead of an 404
|
177 |
* Plugin Foundation updated to PPF07
|
@@ -365,6 +369,9 @@ Please use the [Support Forum](https://wordpress.org/support/plugin/404page).
|
|
365 |
|
366 |
== Upgrade Notice ==
|
367 |
|
|
|
|
|
|
|
368 |
= 11.3.0 =
|
369 |
new option to always send an 410 instead of an 404
|
370 |
|
3 |
Tags: page, 404, error, error page, 404 page, page not found, page not found error, 404 error page, missing, broken link, template, 404 link, seo, custom 404, custom 404 page, custom 404 error, custom 404 error page, customize 404, customize 404 page, customize 404 error page, classicpress
|
4 |
Requires at least: 4.0
|
5 |
Tested up to: 5.9
|
6 |
+
Stable tag: 11.3.1
|
7 |
Requires PHP: 5.4
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
22 |
|
23 |
Create your custom 404 error page just like any other page using the WordPress Page Editor. Then go to 'Appearance' -> '404 Error Page' and select the created page as your custom 404 error page. That's it!
|
24 |
|
25 |
+
== Demo ==
|
26 |
+
|
27 |
+
[See it in action](https://demo.tastewp.com/404page) (no registration needed)
|
28 |
+
kindly powered by [TasteWP](https://tastewp.com/)
|
29 |
+
|
30 |
== Why use this plugin? ==
|
31 |
|
32 |
Different from other similar plugins the 404page plugin **does not create redirects**. That’s **quite important** because a correct code 404 is delivered which tells search engines that the page does not exist and has to be removed from the index.
|
145 |
* **[smart User Slug Hider](https://wordpress.org/plugins/smart-user-slug-hider/)** - Hide usernames in author pages URLs to enhance security
|
146 |
* [See all](https://profiles.wordpress.org/petersplugins/#content-plugins)
|
147 |
|
|
|
|
|
|
|
|
|
|
|
148 |
== Screenshots ==
|
149 |
|
150 |
1. The default 404 error page of the Twenty Twenty theme
|
172 |
|
173 |
== Changelog ==
|
174 |
|
175 |
+
= 11.3.1 (2022-04-05) =
|
176 |
+
* just cosmetics
|
177 |
+
* Plugin Foundation updated to PPF08
|
178 |
+
|
179 |
= 11.3.0 (2021-01-06) =
|
180 |
* new option to always send an 410 instead of an 404
|
181 |
* Plugin Foundation updated to PPF07
|
369 |
|
370 |
== Upgrade Notice ==
|
371 |
|
372 |
+
= 11.3.1 =
|
373 |
+
|
374 |
+
* internal improvements without functional changes
|
375 |
= 11.3.0 =
|
376 |
new option to always send an 410 instead of an 404
|
377 |
|