143 lines
6.3 KiB
PHP
143 lines
6.3 KiB
PHP
<?php
|
|
|
|
/*
|
|
* Custom Fields
|
|
* Metaboxes and adjustments for generell custom fields
|
|
*/
|
|
|
|
|
|
add_action( 'load-post.php', 'pirate_rogue_metabox_cf_setup' );
|
|
add_action( 'load-post-new.php', 'pirate_rogue_metabox_cf_setup' );
|
|
|
|
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Meta box setup function.
|
|
/*-----------------------------------------------------------------------------------*/
|
|
function pirate_rogue_metabox_cf_setup() {
|
|
|
|
add_action( 'add_meta_boxes', 'pirate_rogue_add_metabox_posts' );
|
|
add_action( 'add_meta_boxes', 'pirate_rogue_add_metabox_pages' );
|
|
|
|
/* Save subtitle */
|
|
add_action( 'save_post', 'pirate_rogue_save_metabox_attributes', 10, 2 );
|
|
|
|
/* Save Page Sidebar */
|
|
add_action( 'save_post', 'pirate_rogue_save_metabox_page_sidebar', 10, 2 );
|
|
}
|
|
|
|
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Create one or more meta boxes to be displayed on the post editor screen.
|
|
/*-----------------------------------------------------------------------------------*/
|
|
function pirate_rogue_add_metabox_posts() {
|
|
|
|
/* Subtitle */
|
|
add_meta_box(
|
|
'pirate_rogue_metabox_attributes',
|
|
esc_html__( 'Attributes', 'pirate-rogue' ),
|
|
'pirate_rogue_do_metabox_attributes',
|
|
'post','normal','high'
|
|
);
|
|
}
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Create one or more meta boxes to be displayed on the post editor screen.
|
|
/*-----------------------------------------------------------------------------------*/
|
|
function pirate_rogue_add_metabox_pages() {
|
|
/* None yet */
|
|
add_meta_box(
|
|
'pirate_rogue_metabox_page_sidebar',
|
|
esc_html__( 'Sidebar', 'pirate-rogue' ),
|
|
'pirate_rogue_do_metabox_page_sidebar',
|
|
'page','normal','core'
|
|
);
|
|
|
|
}
|
|
|
|
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Display metabox in pages for sidebar
|
|
/*-----------------------------------------------------------------------------------*/
|
|
function pirate_rogue_do_metabox_page_sidebar( $object, $box ) {
|
|
wp_nonce_field( basename( __FILE__ ), 'pirate_rogue_metabox_page_sidebar_nonce' );
|
|
$post_type = get_post_type( $object->ID);
|
|
|
|
if ( 'post' == $post_type ) {
|
|
if ( !current_user_can( 'edit_post', $object->ID) )
|
|
return;
|
|
} elseif ('page' == $post_type ) {
|
|
if ( !current_user_can( 'edit_page', $object->ID) )
|
|
return;
|
|
} else {
|
|
return;
|
|
}
|
|
$pirate_rogue_page_sidebar = get_post_meta( $object->ID, 'pirate_rogue_page_sidebar', true );
|
|
pirate_rogue_form_wpeditor('pirate_rogue_page_sidebar', $pirate_rogue_page_sidebar, __('Content','pirate-rogue'), __('Optional entries for the sidebar','pirate-rogue'), false);
|
|
}
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Save the meta box page sidebar data
|
|
/*-----------------------------------------------------------------------------------*/
|
|
function pirate_rogue_save_metabox_page_sidebar( $post_id, $post ) {
|
|
/* Verify the nonce before proceeding. */
|
|
if ( !isset( $_POST['pirate_rogue_metabox_page_sidebar_nonce'] ) || !wp_verify_nonce( $_POST['pirate_rogue_metabox_page_sidebar_nonce'], basename( __FILE__ ) ) )
|
|
return $post_id;
|
|
|
|
|
|
/* Check if the current user has permission to edit the post. */
|
|
if ( !current_user_can( 'edit_page', $post_id ) )
|
|
return;
|
|
pirate_rogue_save_standard('pirate_rogue_page_sidebar', $_POST['pirate_rogue_page_sidebar'], $post_id, 'page', 'wpeditor');
|
|
|
|
}
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Display Options for subtitles on posts
|
|
/*-----------------------------------------------------------------------------------*/
|
|
function pirate_rogue_do_metabox_attributes( $object, $box ) {
|
|
wp_nonce_field( basename( __FILE__ ), 'pirate_rogue_metabox_attributes_nonce' );
|
|
$post_type = get_post_type( $object->ID);
|
|
|
|
if ( 'post' == $post_type ) {
|
|
if ( !current_user_can( 'edit_post', $object->ID) )
|
|
return;
|
|
} elseif ('page' == $post_type ) {
|
|
if ( !current_user_can( 'edit_page', $object->ID) )
|
|
return;
|
|
} else {
|
|
return;
|
|
}
|
|
|
|
$piratenkleider_untertitel = get_post_meta( $object->ID, 'piratenkleider_subtitle', true );
|
|
$untertitel = get_post_meta( $object->ID, 'pirate_rogue_subtitle', true );
|
|
if ((empty($untertitel)) && (isset($piratenkleider_untertitel))) {
|
|
$untertitel = $piratenkleider_untertitel;
|
|
}
|
|
pirate_rogue_form_text('pirate_rogue_metabox_untertitel', $untertitel, __('Subtitle','pirate-rogue'), __('Enter a text for a subtitle here, which belongs to the main title of the entry. Do not use more than 120 characters.','pirate-rogue'));
|
|
|
|
$canonical = get_post_meta( $object->ID, 'pirate_rogue_canonical', true );
|
|
pirate_rogue_form_url('pirate_rogue_metabox_canonical', $canonical, __('URL (original address)','pirate-rogue'), __('Enter the URL of the original post where the text has been taken from. This could be another blog or website.','pirate-rogue'));
|
|
}
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Save the meta box's post/page metadata.
|
|
/*-----------------------------------------------------------------------------------*/
|
|
function pirate_rogue_save_metabox_attributes( $post_id, $post ) {
|
|
/* Verify the nonce before proceeding. */
|
|
if ( !isset( $_POST['pirate_rogue_metabox_attributes_nonce'] ) || !wp_verify_nonce( $_POST['pirate_rogue_metabox_attributes_nonce'], basename( __FILE__ ) ) )
|
|
return $post_id;
|
|
|
|
|
|
/* Check if the current user has permission to edit the post. */
|
|
if ( !current_user_can( 'edit_post', $post_id ) )
|
|
return;
|
|
|
|
|
|
$piratenkleider_untertitel = get_post_meta( $post_id, 'piratenkleider_subtitle', true );
|
|
if ($piratenkleider_untertitel) {
|
|
delete_post_meta( $post_id, 'piratenkleider_subtitle', $piratenkleider_untertitel );
|
|
}
|
|
pirate_rogue_save_standard('pirate_rogue_subtitle', $_POST['pirate_rogue_metabox_untertitel'], $post_id, 'text');
|
|
pirate_rogue_save_standard('pirate_rogue_canonical', $_POST['pirate_rogue_metabox_canonical'], $post_id, 'url');
|
|
|
|
}
|
|
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Beim Klabautermann! Da is ja nix mehr!
|
|
/*-----------------------------------------------------------------------------------*/ |