Created
October 1, 2015 17:06
-
-
Save rbk/ed61157c43c890fc3d62 to your computer and use it in GitHub Desktop.
Slider metabox for links
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Generated by the WordPress Meta Box generator | |
* at http://jeremyhixon.com/tool/wordpress-meta-box-generator/ | |
*/ | |
function slide_link_get_meta( $value ) { | |
global $post; | |
$field = get_post_meta( $post->ID, $value, true ); | |
if ( ! empty( $field ) ) { | |
return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) ); | |
} else { | |
return false; | |
} | |
} | |
function slide_link_get_meta_by_id( $value, $slide_id ) { | |
global $post; | |
$field = get_post_meta( $slide_id, $value, true ); | |
if ( ! empty( $field ) ) { | |
return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) ); | |
} else { | |
return false; | |
} | |
} | |
function slide_link_add_meta_box() { | |
add_meta_box( | |
'slide_link-slide-link', | |
__( 'Slide Link', 'slide_link' ), | |
'slide_link_html', | |
'rbk_slides', | |
'normal', | |
'core' | |
); | |
} | |
add_action( 'add_meta_boxes', 'slide_link_add_meta_box' ); | |
function slide_link_html( $post) { | |
wp_nonce_field( '_slide_link_nonce', 'slide_link_nonce' ); ?> | |
<p>Link this slide to a page</p> | |
<p> | |
<label for="slide_link_custom_url"><?php _e( 'Custom Url', 'slide_link' ); ?></label><br> | |
<input type="text" name="slide_link_custom_url" id="slide_link_custom_url" value="<?php echo slide_link_get_meta( 'slide_link_custom_url' ); ?>"> | |
</p> | |
<p> | |
<label for="slide_link_in_page_link"><?php _e( 'In Page Link', 'slide_link' ); ?></label><br> | |
<select name="slide_link_in_page_link" id="slide_link_in_page_link"> | |
<option value=""></option> | |
<optgroup label="Pages"> | |
<?php | |
$id = slide_link_get_meta( 'slide_link_in_page_link' ); | |
$pages = get_posts(array('post_type'=>'page', 'posts_per_page'=> -1)); | |
foreach( $pages as $page ){ | |
if( $page->ID == $id ){ | |
$selected = 'selected'; | |
} else { | |
$selected = ''; | |
} | |
echo '<option value="'.$page->ID.'" ' . $selected . '>'.$page->post_title.'</option>'; | |
} | |
?> | |
</optgroup> | |
<optgroup label="Posts"> | |
<?php | |
$id = slide_link_get_meta( 'slide_link_in_page_link' ); | |
$pages = get_posts(array('post_type'=>'posts', 'posts_per_page'=> -1)); | |
foreach( $pages as $page ){ | |
if( $page->ID == $id ){ | |
$selected = 'selected'; | |
} else { | |
$selected = ''; | |
} | |
echo '<option value="'.$page->ID.'" ' . $selected . '>'.$page->post_title.'</option>'; | |
} | |
?> | |
</optgroup> | |
</select> | |
</p> | |
<p> | |
<label for="rbk_slide_button_text"><?php _e( 'Button Text', 'button_text' ); ?></label><br> | |
<input type="text" name="rbk_slide_button_text" id="rbk_slide_button_text" value="<?php echo slide_link_get_meta( 'rbk_slide_button_text' ); ?>"> | |
</p> | |
<?php | |
} | |
function slide_link_save( $post_id ) { | |
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; | |
if ( ! isset( $_POST['slide_link_nonce'] ) || ! wp_verify_nonce( $_POST['slide_link_nonce'], '_slide_link_nonce' ) ) return; | |
if ( ! current_user_can( 'edit_post', $post_id ) ) return; | |
if ( isset( $_POST['slide_link_custom_url'] ) ) | |
update_post_meta( $post_id, 'slide_link_custom_url', esc_attr( $_POST['slide_link_custom_url'] ) ); | |
if ( isset( $_POST['slide_link_in_page_link'] ) ) | |
update_post_meta( $post_id, 'slide_link_in_page_link', esc_attr( $_POST['slide_link_in_page_link'] ) ); | |
if ( isset( $_POST['rbk_slide_button_text'] ) ) | |
update_post_meta( $post_id, 'rbk_slide_button_text', esc_attr( $_POST['rbk_slide_button_text'] ) ); | |
} | |
add_action( 'save_post', 'slide_link_save' ); | |
/* | |
Usage: slide_link_get_meta( 'slide_link_custom_url' ) | |
Usage: slide_link_get_meta( 'slide_link_in_page_link' ) | |
*/ | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment