|
|
|
@@ -9,10 +9,17 @@
|
|
|
|
|
|
|
|
|
|
class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
|
|
|
|
|
protected $displaysetting;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* add a submenu page under Appearance
|
|
|
|
|
* @return submenu Display Featured image settings page
|
|
|
|
|
* @since x.y.z
|
|
|
|
|
*/
|
|
|
|
|
public function do_submenu_page() {
|
|
|
|
|
|
|
|
|
|
add_theme_page(
|
|
|
|
|
__( 'Display Featured Image for Genesis: Settings', 'display-featured-image-genesis' ),
|
|
|
|
|
__( 'Display Featured Image for Genesis', 'display-featured-image-genesis' ),
|
|
|
|
|
__( 'Display Featured Image Settings', 'display-featured-image-genesis' ),
|
|
|
|
|
'manage_options',
|
|
|
|
|
'displayfeaturedimagegenesis',
|
|
|
|
@@ -24,8 +31,15 @@ class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* create settings form
|
|
|
|
|
* @return form Display Featured Image for Genesis settings
|
|
|
|
|
*
|
|
|
|
|
* @since x.y.z
|
|
|
|
|
*/
|
|
|
|
|
public function do_settings_form() {
|
|
|
|
|
$page_title = get_admin_page_title();
|
|
|
|
|
|
|
|
|
|
echo '<div class="wrap">';
|
|
|
|
|
echo '<h2>' . $page_title . '</h2>';
|
|
|
|
|
echo '<form action="options.php" method="post">';
|
|
|
|
@@ -38,52 +52,56 @@ class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Settings for media screen
|
|
|
|
|
* Settings for options screen
|
|
|
|
|
* @return settings for backstretch image options
|
|
|
|
|
*
|
|
|
|
|
* @since 1.1.0
|
|
|
|
|
*/
|
|
|
|
|
public function register_settings() {
|
|
|
|
|
|
|
|
|
|
register_setting( 'displayfeaturedimagegenesis', 'displayfeaturedimage_less_header', 'absint' );
|
|
|
|
|
register_setting( 'displayfeaturedimagegenesis', 'displayfeaturedimage_default', array( $this, 'validate_image' ) );
|
|
|
|
|
register_setting( 'displayfeaturedimagegenesis', 'displayfeaturedimage_exclude_front', array( $this, 'one_zero' ) );
|
|
|
|
|
register_setting( 'displayfeaturedimagegenesis', 'displayfeaturedimage_excerpts', array( $this, 'one_zero' ) );
|
|
|
|
|
register_setting( 'displayfeaturedimagegenesis', 'displayfeaturedimagegenesis', array( $this, 'do_validation_things' ) );
|
|
|
|
|
|
|
|
|
|
$this->displaysetting = get_option( 'displayfeaturedimagegenesis', array(
|
|
|
|
|
'less_header' => 0,
|
|
|
|
|
'default' => '',
|
|
|
|
|
'exclude_front' => 0,
|
|
|
|
|
'move_excerpts' => 0
|
|
|
|
|
) );
|
|
|
|
|
|
|
|
|
|
add_settings_section(
|
|
|
|
|
'display_featured_image_section',
|
|
|
|
|
__( 'Display Featured Image for Genesis', 'display-featured-image-genesis' ),
|
|
|
|
|
__( 'Optional Sitewide Settings', 'display-featured-image-genesis' ),
|
|
|
|
|
array( $this, 'section_description'),
|
|
|
|
|
'displayfeaturedimagegenesis'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
add_settings_field(
|
|
|
|
|
'displayfeaturedimage_less_header',
|
|
|
|
|
'<label for="displayfeaturedimage_less_header">' . __( 'Height' , 'display-featured-image-genesis' ) . '</label>',
|
|
|
|
|
'displayfeaturedimagegenesis[less_header]',
|
|
|
|
|
'<label for="displayfeaturedimagegenesis[less_header]">' . __( 'Height' , 'display-featured-image-genesis' ) . '</label>',
|
|
|
|
|
array( $this, 'header_size' ),
|
|
|
|
|
'displayfeaturedimagegenesis',
|
|
|
|
|
'display_featured_image_section'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
add_settings_field(
|
|
|
|
|
'displayfeaturedimage_default',
|
|
|
|
|
'<label for="displayfeaturedimage_default">' . __( 'Default Featured Image', 'display-featured-image-genesis' ) . '</label>',
|
|
|
|
|
'displayfeaturedimagegenesis[default]',
|
|
|
|
|
'<label for="displayfeaturedimagegenesis[default]">' . __( 'Default Featured Image', 'display-featured-image-genesis' ) . '</label>',
|
|
|
|
|
array( $this, 'set_default_image' ),
|
|
|
|
|
'displayfeaturedimagegenesis',
|
|
|
|
|
'display_featured_image_section'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
add_settings_field(
|
|
|
|
|
'displayfeaturedimage_exclude_front',
|
|
|
|
|
'<label for="displayfeaturedimage_exclude_front">' . __( 'Skip Front Page', 'display-featured-image-genesis' ) . '</label>',
|
|
|
|
|
'displayfeaturedimagegenesis[exclude_front]',
|
|
|
|
|
'<label for="displayfeaturedimagegenesis[exclude_front]">' . __( 'Skip Front Page', 'display-featured-image-genesis' ) . '</label>',
|
|
|
|
|
array( $this, 'exclude_front' ),
|
|
|
|
|
'displayfeaturedimagegenesis',
|
|
|
|
|
'display_featured_image_section'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
add_settings_field(
|
|
|
|
|
'displayfeaturedimage_excerpts',
|
|
|
|
|
'<label for="displayfeaturedimage_excerpts">' . __( 'Move Excerpts/Archive Descriptions', 'display-featured-image-genesis' ) . '</label>',
|
|
|
|
|
'displayfeaturedimagegenesis[move_excerpts]',
|
|
|
|
|
'<label for="displayfeaturedimagegenesis[move_excerpts]">' . __( 'Move Excerpts/Archive Descriptions', 'display-featured-image-genesis' ) . '</label>',
|
|
|
|
|
array( $this, 'move_excerpts' ),
|
|
|
|
|
'displayfeaturedimagegenesis',
|
|
|
|
|
'display_featured_image_section'
|
|
|
|
@@ -110,10 +128,9 @@ class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
* @since 1.1.0
|
|
|
|
|
*/
|
|
|
|
|
public function header_size() {
|
|
|
|
|
$value = get_option( 'displayfeaturedimage_less_header', 0 );
|
|
|
|
|
|
|
|
|
|
echo '<label for="displayfeaturedimage_less_header">' . __( 'Pixels to remove ', 'display-featured-image-genesis' ) . '</label>';
|
|
|
|
|
echo '<input type="number" step="1" min="0" max="400" id="displayfeaturedimage_less_header" name="displayfeaturedimage_less_header" value="' . esc_attr( $value ) . '" class="small-text" />';
|
|
|
|
|
echo '<label for="displayfeaturedimagegenesis[less_header]">' . __( 'Pixels to remove ', 'display-featured-image-genesis' ) . '</label>';
|
|
|
|
|
echo '<input type="number" step="1" min="0" max="400" id="displayfeaturedimagegenesis[less_header]" name="displayfeaturedimagegenesis[less_header]" value="' . esc_attr( $this->displaysetting['less_header'] ) . '" class="small-text" />';
|
|
|
|
|
echo '<p class="description">' . __( 'Changing this number will reduce the backstretch image height by this number of pixels. Default is zero.', 'display-featured-image-genesis' ) . '</p>';
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@@ -126,15 +143,16 @@ class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
* @since 1.2.1
|
|
|
|
|
*/
|
|
|
|
|
public function set_default_image() {
|
|
|
|
|
|
|
|
|
|
$item = Display_Featured_Image_Genesis_Common::get_image_variables();
|
|
|
|
|
|
|
|
|
|
if ( ! empty( $item->fallback ) ) {
|
|
|
|
|
if ( ! empty( $this->displaysetting['default'] ) ) {
|
|
|
|
|
$preview = wp_get_attachment_image_src( $item->fallback_id, 'medium' );
|
|
|
|
|
echo '<div id="upload_logo_preview">';
|
|
|
|
|
echo '<img src="' . esc_url( $preview[0] ) . '" />';
|
|
|
|
|
echo '</div>';
|
|
|
|
|
}
|
|
|
|
|
echo '<input type="url" id="default_image_url" name="displayfeaturedimage_default" value="' . esc_url( $item->fallback ) . '" />';
|
|
|
|
|
echo '<input type="url" id="default_image_url" name="displayfeaturedimagegenesis[default]" value="' . esc_url( $this->displaysetting['default'] ) . '" />';
|
|
|
|
|
echo '<input id="upload_default_image" type="button" class="upload_default_image button" value="' . __( 'Select Default Image', 'display-featured-image-genesis' ) . '" />';
|
|
|
|
|
echo '<p class="description">' . sprintf(
|
|
|
|
|
__( 'If you would like to use a default image for the featured image, upload it here. Must be at least %1$s pixels wide.', 'display-featured-image-genesis' ),
|
|
|
|
@@ -143,15 +161,13 @@ class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* option to exclude default featured image on front page
|
|
|
|
|
* option to exclude featured image on front page
|
|
|
|
|
* @return 0 1 checkbox
|
|
|
|
|
*
|
|
|
|
|
* @since x.y.z
|
|
|
|
|
*/
|
|
|
|
|
public function exclude_front() {
|
|
|
|
|
$value = get_option( 'displayfeaturedimage_exclude_front' );
|
|
|
|
|
|
|
|
|
|
echo '<input type="checkbox" name="displayfeaturedimage_exclude_front" id="displayfeaturedimage_exclude_front" value="1"' . checked( 1, $value, false ) . ' class="code" /> <label for="displayfeaturedimage_exclude_front">' . __( 'Do not show the Featured Image on the Front Page of the site.', 'display-featured-image-genesis' ) . '</label>';
|
|
|
|
|
echo '<input type="checkbox" name="displayfeaturedimagegenesis[exclude_front]" id="displayfeaturedimagegenesis[exclude_front]" value="1"' . checked( 1, $this->displaysetting['exclude_front'], false ) . ' class="code" /> <label for="displayfeaturedimagegenesis[exclude_front]">' . __( 'Do not show the Featured Image on the Front Page of the site.', 'display-featured-image-genesis' ) . '</label>';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@@ -161,9 +177,28 @@ class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
* @since 1.3.0
|
|
|
|
|
*/
|
|
|
|
|
public function move_excerpts() {
|
|
|
|
|
$value = get_option( 'displayfeaturedimage_excerpts' );
|
|
|
|
|
echo '<input type="checkbox" name="displayfeaturedimagegenesis[move_excerpts]" id="displayfeaturedimagegenesis[move_excerpts]" value="1"' . checked( 1, $this->displaysetting['move_excerpts'], false ) . ' class="code" /> <label for="displayfeaturedimagegenesis[move_excerpts]">' . __( 'Move excerpts (if used) on single pages and move archive/taxonomy descriptions to overlay the Featured Image.', 'display-featured-image-genesis' ) . '</label>';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* validate all inputs
|
|
|
|
|
* @param string $new_value various settings
|
|
|
|
|
* @return string number or URL
|
|
|
|
|
*
|
|
|
|
|
* @since x.y.z
|
|
|
|
|
*/
|
|
|
|
|
public function do_validation_things( $new_value ) {
|
|
|
|
|
|
|
|
|
|
$new_value['less_header'] = absint( $new_value['less_header'] );
|
|
|
|
|
|
|
|
|
|
$new_value['default'] = $this->validate_image( $new_value['default'] );
|
|
|
|
|
|
|
|
|
|
$new_value['exclude_front'] = $this->one_zero( $new_value['exclude_front'] );
|
|
|
|
|
|
|
|
|
|
$new_value['move_excerpts'] = $this->one_zero( $new_value['move_excerpts'] );
|
|
|
|
|
|
|
|
|
|
return $new_value;
|
|
|
|
|
|
|
|
|
|
echo '<input type="checkbox" name="displayfeaturedimage_excerpts" id="displayfeaturedimage_excerpts" value="1"' . checked( 1, $value, false ) . ' class="code" /> <label for="displayfeaturedimage_excerpts">' . __( 'Move excerpts (if used) on single pages and move archive/taxonomy descriptions to overlay the Featured Image.', 'display-featured-image-genesis' ) . '</label>';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@@ -172,38 +207,42 @@ class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
* @return string New or previous value, depending on allowed image size.
|
|
|
|
|
* @since 1.2.2
|
|
|
|
|
*/
|
|
|
|
|
public function validate_image( $new_value ) {
|
|
|
|
|
protected function validate_image( $new_value ) {
|
|
|
|
|
|
|
|
|
|
$new_value = esc_url( $new_value );
|
|
|
|
|
$valid = $this->is_valid_img_ext( $new_value );
|
|
|
|
|
$large = get_option( 'large_size_w' );
|
|
|
|
|
$id = Display_Featured_Image_Genesis_Common::get_image_id( $new_value );
|
|
|
|
|
$file = wp_get_attachment_image_src( $id, 'original' );
|
|
|
|
|
$message = __( 'Settings saved.', 'display-featured-image-genesis' );
|
|
|
|
|
$type = 'updated';
|
|
|
|
|
|
|
|
|
|
// ok for field to be empty
|
|
|
|
|
if ( $new_value ) {
|
|
|
|
|
|
|
|
|
|
if ( ! $valid ) {
|
|
|
|
|
$type = 'error';
|
|
|
|
|
$message = __( 'Sorry, that is an invalid file type. The Default Featured Image has been reset to the last valid setting.', 'display-featured-image-genesis' );
|
|
|
|
|
$new_value = get_option( 'displayfeaturedimage_default', '' );
|
|
|
|
|
$message = __( 'Sorry, that is an invalid file type. The Default Featured Image has been reset to the last valid setting.', 'display-featured-image-genesis' );
|
|
|
|
|
$new_value = $this->displaysetting['default'];
|
|
|
|
|
|
|
|
|
|
add_settings_error(
|
|
|
|
|
$this->displaysetting['default'],
|
|
|
|
|
esc_attr( 'invalid' ),
|
|
|
|
|
$message,
|
|
|
|
|
'error'
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
// if file is an image, but is too small, throw it back
|
|
|
|
|
elseif ( $file[1] <= $large ) {
|
|
|
|
|
$type = 'error';
|
|
|
|
|
$message = __( 'Sorry, your image is too small. The Default Featured Image has been reset to the last valid setting.', 'display-featured-image-genesis' );
|
|
|
|
|
$new_value = get_option( 'displayfeaturedimage_default', '' );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$message = __( 'Sorry, your image is too small. The Default Featured Image has been reset to the last valid setting.', 'display-featured-image-genesis' );
|
|
|
|
|
$new_value = $this->displaysetting['default'];
|
|
|
|
|
|
|
|
|
|
add_settings_error(
|
|
|
|
|
'displayfeaturedimage_default',
|
|
|
|
|
esc_attr( 'settings-updated' ),
|
|
|
|
|
$message,
|
|
|
|
|
$type
|
|
|
|
|
);
|
|
|
|
|
add_settings_error(
|
|
|
|
|
$this->displaysetting['default'],
|
|
|
|
|
esc_attr( 'weetiny' ),
|
|
|
|
|
$message,
|
|
|
|
|
'error'
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $new_value;
|
|
|
|
|
}
|
|
|
|
@@ -270,7 +309,7 @@ class Display_Featured_Image_Genesis_Settings {
|
|
|
|
|
|
|
|
|
|
$skipfront_help =
|
|
|
|
|
'<h3>' . __( 'Show on Front Page', 'display-featured-image-genesis' ) . '</h3>' .
|
|
|
|
|
'<p>' . __( 'If you set a Default Featured Image, it will show on every post/page of your site. This may not be desirable on child themes with a front page constructed with widgets, so you can select this option to prevent the Featured Image from showing on the front page.', 'display-featured-image-genesis' ) . '</p>' .
|
|
|
|
|
'<p>' . __( 'If you set a Default Featured Image, it will show on every post/page of your site. This may not be desirable on child themes with a front page constructed with widgets, so you can select this option to prevent the Featured Image from showing on the front page. Checking this will prevent the Featured Image from showing on the Front Page, even if you have set an image for that page individually.', 'display-featured-image-genesis' ) . '</p>' .
|
|
|
|
|
'<p>' . sprintf(
|
|
|
|
|
__( 'If you want to prevent entire groups of posts from not using the Featured Image, you will want to <a href="%s" target="_blank">add a filter</a> to your theme functions.php file.', 'display-featured-image-genesis' ),
|
|
|
|
|
esc_url( 'https://github.com/robincornett/display-featured-image-genesis#how-do-i-stop-the-featured-image-action-from-showing-on-my-custom-post-types' )
|
|
|
|
|