Version Description
- Allow subtitle to contain HTML (same as main post title ).
- Add
wps_default_subtitle
filter. - Use WP_Subtitle class to validate saving of subtitle in the admin.
Download this release
Release Info
Developer | husobj |
Plugin | WP Subtitle |
Version | 2.8 |
Comparing to | |
See all releases |
Code changes from version 2.7.1 to 2.8
- CHANGELOG.md +11 -1
- README.md +3 -0
- admin/admin.php +44 -27
- includes/subtitle.php +58 -1
- readme.txt +9 -1
- wp-subtitle.php +1 -1
CHANGELOG.md
CHANGED
@@ -4,6 +4,15 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4 |
|
5 |
## [Unreleased]
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
## [2.7.1] - 2016-08-05
|
8 |
|
9 |
### Fixed
|
@@ -110,7 +119,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
110 |
### Added
|
111 |
- First version.
|
112 |
|
113 |
-
[Unreleased]: https://github.com/benhuson/wp-subtitle/compare/2.
|
|
|
114 |
[2.7.1]: https://github.com/benhuson/wp-subtitle/compare/2.7...2.7.1
|
115 |
[2.7]: https://github.com/benhuson/wp-subtitle/compare/2.6...2.7
|
116 |
[2.6]: https://github.com/benhuson/wp-subtitle/compare/2.5...2.6
|
4 |
|
5 |
## [Unreleased]
|
6 |
|
7 |
+
## [2.8] - 2016-09-07
|
8 |
+
|
9 |
+
### Added
|
10 |
+
- Add `wps_default_subtitle` filter.
|
11 |
+
|
12 |
+
### Changed
|
13 |
+
- Allow subtitle to contain HTML (same as main post title ).
|
14 |
+
- Use WP_Subtitle class to validate saving of subtitle in the admin.
|
15 |
+
|
16 |
## [2.7.1] - 2016-08-05
|
17 |
|
18 |
### Fixed
|
119 |
### Added
|
120 |
- First version.
|
121 |
|
122 |
+
[Unreleased]: https://github.com/benhuson/wp-subtitle/compare/2.8...HEAD
|
123 |
+
[2.8]: https://github.com/benhuson/wp-subtitle/compare/2.7.1...2.8
|
124 |
[2.7.1]: https://github.com/benhuson/wp-subtitle/compare/2.7...2.7.1
|
125 |
[2.7]: https://github.com/benhuson/wp-subtitle/compare/2.6...2.7
|
126 |
[2.6]: https://github.com/benhuson/wp-subtitle/compare/2.5...2.6
|
README.md
CHANGED
@@ -88,6 +88,9 @@ The plugin is [hosted on GitHub](https://github.com/benhuson/wp-subtitle) and pu
|
|
88 |
Upgrade Notice
|
89 |
--------------
|
90 |
|
|
|
|
|
|
|
91 |
### 2.7.1
|
92 |
Fix incorrect post ID reference preventing subtitle from saving.
|
93 |
|
88 |
Upgrade Notice
|
89 |
--------------
|
90 |
|
91 |
+
### 2.8
|
92 |
+
Allow subtitle to contain HTML (same as main post title ) and add `wps_default_subtitle` filter.
|
93 |
+
|
94 |
### 2.7.1
|
95 |
Fix incorrect post ID reference preventing subtitle from saving.
|
96 |
|
admin/admin.php
CHANGED
@@ -234,10 +234,10 @@ class WPSubtitle_Admin {
|
|
234 |
|
235 |
global $post;
|
236 |
|
237 |
-
$
|
238 |
|
239 |
echo '<input type="hidden" name="wps_noncename" id="wps_noncename" value="' . wp_create_nonce( 'wp-subtitle' ) . '" />';
|
240 |
-
echo '<input type="text" id="wpsubtitle" name="wps_subtitle" value="' . esc_attr( $subtitle
|
241 |
echo apply_filters( 'wps_subtitle_field_description', '', $post );
|
242 |
}
|
243 |
|
@@ -254,12 +254,12 @@ class WPSubtitle_Admin {
|
|
254 |
|
255 |
global $post;
|
256 |
|
257 |
-
$
|
258 |
|
259 |
echo '<input type="hidden" name="wps_noncename" id="wps_noncename" value="' . wp_create_nonce( 'wp-subtitle' ) . '" />';
|
260 |
echo '<div id="subtitlediv" class="top">';
|
261 |
echo '<div id="subtitlewrap">';
|
262 |
-
echo '<input type="text" id="wpsubtitle" name="wps_subtitle" value="' . esc_attr( $
|
263 |
echo '</div>';
|
264 |
|
265 |
// Description
|
@@ -270,6 +270,33 @@ class WPSubtitle_Admin {
|
|
270 |
echo '</div>';
|
271 |
}
|
272 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
/**
|
274 |
* Save Subtitle
|
275 |
*
|
@@ -293,24 +320,24 @@ class WPSubtitle_Admin {
|
|
293 |
return;
|
294 |
}
|
295 |
|
296 |
-
// Check
|
297 |
-
if ( ! self::_verify_post_edit_capability( $post_id ) ) {
|
298 |
-
return;
|
299 |
-
}
|
300 |
-
|
301 |
-
// Save data
|
302 |
if ( isset( $_POST['wps_subtitle'] ) ) {
|
303 |
|
304 |
$subtitle = new WP_Subtitle( $post_id );
|
305 |
-
|
|
|
|
|
|
|
306 |
|
307 |
}
|
|
|
308 |
}
|
309 |
|
310 |
/**
|
311 |
* Verify Post Edit Capability
|
312 |
*
|
313 |
-
* @since
|
|
|
314 |
* @internal
|
315 |
*
|
316 |
* @param int $post_id Post ID.
|
@@ -318,22 +345,12 @@ class WPSubtitle_Admin {
|
|
318 |
*/
|
319 |
private static function _verify_post_edit_capability( $post_id ) {
|
320 |
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
if ( isset( $_POST['post_type'] ) && WPSubtitle::is_supported_post_type( $_POST['post_type'] ) ) {
|
327 |
-
if ( 'page' == $_POST['post_type'] && current_user_can( 'edit_page', $post_id ) ) {
|
328 |
-
return true;
|
329 |
-
} elseif ( 'post' == $_POST['post_type'] && current_user_can( 'edit_post', $post_id ) ) {
|
330 |
-
return true;
|
331 |
-
} elseif ( current_user_can( $post_types_obj[ $_POST['post_type'] ]->cap->edit_post, $post_id ) ) {
|
332 |
-
return true;
|
333 |
-
}
|
334 |
-
}
|
335 |
|
336 |
-
return false;
|
337 |
}
|
338 |
|
339 |
/**
|
234 |
|
235 |
global $post;
|
236 |
|
237 |
+
$value = self::get_admin_subtitle_value( $post );
|
238 |
|
239 |
echo '<input type="hidden" name="wps_noncename" id="wps_noncename" value="' . wp_create_nonce( 'wp-subtitle' ) . '" />';
|
240 |
+
echo '<input type="text" id="wpsubtitle" name="wps_subtitle" value="' . esc_attr( htmlentities( $value ) ) . '" autocomplete="off" placeholder="' . esc_attr( apply_filters( 'wps_subtitle_field_placeholder', __( 'Enter subtitle here', 'wp-subtitle' ) ) ) . '" style="width:99%;" />';
|
241 |
echo apply_filters( 'wps_subtitle_field_description', '', $post );
|
242 |
}
|
243 |
|
254 |
|
255 |
global $post;
|
256 |
|
257 |
+
$value = self::get_admin_subtitle_value( $post );
|
258 |
|
259 |
echo '<input type="hidden" name="wps_noncename" id="wps_noncename" value="' . wp_create_nonce( 'wp-subtitle' ) . '" />';
|
260 |
echo '<div id="subtitlediv" class="top">';
|
261 |
echo '<div id="subtitlewrap">';
|
262 |
+
echo '<input type="text" id="wpsubtitle" name="wps_subtitle" value="' . esc_attr( htmlentities( $value ) ) . '" autocomplete="off" placeholder="' . esc_attr( apply_filters( 'wps_subtitle_field_placeholder', __( 'Enter subtitle here', 'wp-subtitle' ) ) ) . '" />';
|
263 |
echo '</div>';
|
264 |
|
265 |
// Description
|
270 |
echo '</div>';
|
271 |
}
|
272 |
|
273 |
+
/**
|
274 |
+
* Get Admin Subtitle Value
|
275 |
+
*
|
276 |
+
* @since 2.8
|
277 |
+
* @internal
|
278 |
+
*
|
279 |
+
* @param WP_Post $post Post object.
|
280 |
+
* @return string Subtitle value.
|
281 |
+
*/
|
282 |
+
private function get_admin_subtitle_value( $post ) {
|
283 |
+
|
284 |
+
$subtitle = new WP_Subtitle( $post );
|
285 |
+
|
286 |
+
$value = $subtitle->get_raw_subtitle();
|
287 |
+
|
288 |
+
// Default subtitle if adding new post
|
289 |
+
if ( function_exists( 'get_current_screen' ) && empty( $value ) ) {
|
290 |
+
$screen = get_current_screen();
|
291 |
+
if ( isset( $screen->action ) && 'add' == $screen->action ) {
|
292 |
+
$value = $subtitle->get_default_subtitle( $post );
|
293 |
+
}
|
294 |
+
}
|
295 |
+
|
296 |
+
return $value;
|
297 |
+
|
298 |
+
}
|
299 |
+
|
300 |
/**
|
301 |
* Save Subtitle
|
302 |
*
|
320 |
return;
|
321 |
}
|
322 |
|
323 |
+
// Check data and save
|
|
|
|
|
|
|
|
|
|
|
324 |
if ( isset( $_POST['wps_subtitle'] ) ) {
|
325 |
|
326 |
$subtitle = new WP_Subtitle( $post_id );
|
327 |
+
|
328 |
+
if ( $subtitle->current_user_can_edit() ) {
|
329 |
+
$subtitle->update_subtitle( $_POST['wps_subtitle'] );
|
330 |
+
}
|
331 |
|
332 |
}
|
333 |
+
|
334 |
}
|
335 |
|
336 |
/**
|
337 |
* Verify Post Edit Capability
|
338 |
*
|
339 |
+
* @since 2.0.1
|
340 |
+
* @deprecated 2.7 Use WP_Subtitle->current_user_can_edit() instead.
|
341 |
* @internal
|
342 |
*
|
343 |
* @param int $post_id Post ID.
|
345 |
*/
|
346 |
private static function _verify_post_edit_capability( $post_id ) {
|
347 |
|
348 |
+
_deprecated_function( '_verify_post_edit_capability()', '2.7', 'WP_Subtitle->current_user_can_edit()' );
|
349 |
+
|
350 |
+
$subtitle = new WP_Subtitle( $post_id );
|
351 |
+
|
352 |
+
return $subtitle->current_user_can_edit();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
|
|
|
354 |
}
|
355 |
|
356 |
/**
|
includes/subtitle.php
CHANGED
@@ -83,6 +83,19 @@ class WP_Subtitle {
|
|
83 |
|
84 |
}
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
/**
|
87 |
* Update Subtitle
|
88 |
*
|
@@ -91,7 +104,7 @@ class WP_Subtitle {
|
|
91 |
*/
|
92 |
public function update_subtitle( $subtitle ) {
|
93 |
|
94 |
-
return update_post_meta( $this->post_id, $this->get_post_meta_key(),
|
95 |
|
96 |
}
|
97 |
|
@@ -124,6 +137,8 @@ class WP_Subtitle {
|
|
124 |
/**
|
125 |
* Get Supported Post Types
|
126 |
*
|
|
|
|
|
127 |
* @return array Array of supported post types.
|
128 |
*/
|
129 |
private function get_supported_post_types() {
|
@@ -146,4 +161,46 @@ class WP_Subtitle {
|
|
146 |
|
147 |
}
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
}
|
83 |
|
84 |
}
|
85 |
|
86 |
+
/**
|
87 |
+
* Get Default Subtitle
|
88 |
+
*
|
89 |
+
* @since 2.8
|
90 |
+
*
|
91 |
+
* @return string Default title.
|
92 |
+
*/
|
93 |
+
public function get_default_subtitle() {
|
94 |
+
|
95 |
+
return apply_filters( 'wps_default_subtitle', '', $this->post_id );
|
96 |
+
|
97 |
+
}
|
98 |
+
|
99 |
/**
|
100 |
* Update Subtitle
|
101 |
*
|
104 |
*/
|
105 |
public function update_subtitle( $subtitle ) {
|
106 |
|
107 |
+
return update_post_meta( $this->post_id, $this->get_post_meta_key(), $subtitle );
|
108 |
|
109 |
}
|
110 |
|
137 |
/**
|
138 |
* Get Supported Post Types
|
139 |
*
|
140 |
+
* @since 2.7
|
141 |
+
*
|
142 |
* @return array Array of supported post types.
|
143 |
*/
|
144 |
private function get_supported_post_types() {
|
161 |
|
162 |
}
|
163 |
|
164 |
+
/**
|
165 |
+
* Current User Can Edit
|
166 |
+
*
|
167 |
+
* @since 2.8
|
168 |
+
*
|
169 |
+
* @return boolean
|
170 |
+
*/
|
171 |
+
public function current_user_can_edit() {
|
172 |
+
|
173 |
+
// Check supported post type
|
174 |
+
if ( $this->is_supported_post_type() ) {
|
175 |
+
|
176 |
+
$post_type = get_post_type( $this->post_id );
|
177 |
+
|
178 |
+
// Current user can...
|
179 |
+
switch ( $post_type ) {
|
180 |
+
|
181 |
+
// ... edit page
|
182 |
+
case 'page':
|
183 |
+
return current_user_can( 'edit_page', $this->post_id );
|
184 |
+
|
185 |
+
// ... edit post
|
186 |
+
case 'post':
|
187 |
+
return current_user_can( 'edit_post', $this->post_id );
|
188 |
+
|
189 |
+
// ... edit other post type
|
190 |
+
default:
|
191 |
+
|
192 |
+
$post_types = (array) get_post_types( array(
|
193 |
+
'_builtin' => false
|
194 |
+
), 'objects' );
|
195 |
+
|
196 |
+
return current_user_can( $post_types[ $post_type ]->cap->edit_post, $this->post_id );
|
197 |
+
|
198 |
+
}
|
199 |
+
|
200 |
+
}
|
201 |
+
|
202 |
+
return false;
|
203 |
+
|
204 |
+
}
|
205 |
+
|
206 |
}
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
4 |
Tags: subtitle, content, title, subheading, subhead, alternate title
|
5 |
Requires at least: 3.7
|
6 |
Tested up to: 4.6
|
7 |
-
Stable tag: 2.
|
8 |
License: GPLv2
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
10 |
|
@@ -100,6 +100,11 @@ The plugin is [hosted on GitHub](https://github.com/benhuson/wp-subtitle) and pu
|
|
100 |
|
101 |
== Changelog ==
|
102 |
|
|
|
|
|
|
|
|
|
|
|
103 |
= 2.7.1 =
|
104 |
* Fix incorrect post ID reference preventing subtitle from saving.
|
105 |
|
@@ -162,6 +167,9 @@ The plugin is [hosted on GitHub](https://github.com/benhuson/wp-subtitle) and pu
|
|
162 |
|
163 |
== Upgrade Notice ==
|
164 |
|
|
|
|
|
|
|
165 |
= 2.7.1 =
|
166 |
Fix incorrect post ID reference preventing subtitle from saving.
|
167 |
|
4 |
Tags: subtitle, content, title, subheading, subhead, alternate title
|
5 |
Requires at least: 3.7
|
6 |
Tested up to: 4.6
|
7 |
+
Stable tag: 2.8
|
8 |
License: GPLv2
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
10 |
|
100 |
|
101 |
== Changelog ==
|
102 |
|
103 |
+
= 2.8 =
|
104 |
+
* Allow subtitle to contain HTML (same as main post title ).
|
105 |
+
* Add `wps_default_subtitle` filter.
|
106 |
+
* Use WP_Subtitle class to validate saving of subtitle in the admin.
|
107 |
+
|
108 |
= 2.7.1 =
|
109 |
* Fix incorrect post ID reference preventing subtitle from saving.
|
110 |
|
167 |
|
168 |
== Upgrade Notice ==
|
169 |
|
170 |
+
= 2.8 =
|
171 |
+
Allow subtitle to contain HTML (same as main post title ) and add `wps_default_subtitle` filter.
|
172 |
+
|
173 |
= 2.7.1 =
|
174 |
Fix incorrect post ID reference preventing subtitle from saving.
|
175 |
|
wp-subtitle.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Plugin Name: WP Subtitle
|
5 |
Plugin URI: http://wordpress.org/plugins/wp-subtitle/
|
6 |
Description: Adds a subtitle field to pages and posts. Possible to add support for custom post types.
|
7 |
-
Version: 2.
|
8 |
Author: Ben Huson, Husani Oakley
|
9 |
Author URI: https://github.com/benhuson/wp-subtitle
|
10 |
License: GPLv2
|
4 |
Plugin Name: WP Subtitle
|
5 |
Plugin URI: http://wordpress.org/plugins/wp-subtitle/
|
6 |
Description: Adds a subtitle field to pages and posts. Possible to add support for custom post types.
|
7 |
+
Version: 2.8
|
8 |
Author: Ben Huson, Husani Oakley
|
9 |
Author URI: https://github.com/benhuson/wp-subtitle
|
10 |
License: GPLv2
|