Ich war heute sehr viel unterwegs und habe mit meinem Auto knapp 300 km zurückgelegt. Deswegen werde ich meinen Beitrag heute sehr kurz und knapp halten.
Dokument Tab
In WordPress Gutenberg hat man auf der rechten Seite ein Panel, wo man entweder den aktuellen Block oder die Post Eigenschaften des aktuellen Beitrages verändern kann. Ich werde euch jetzt einen Script Beispiel geben, wie Ihr im „Dokument“ Bereich eine eigene Jalousie mit eigenen Eigenschaften erstellen könnt. Nennen wir es einfach mal Subline
Beispiel Code
<?php
add_action( 'load-post.php', 'subline_post_meta_boxes_setup' );
add_action( 'load-post-new.php', 'subline_post_meta_boxes_setup' );
function subline_post_meta_boxes_setup() {
add_action( 'add_meta_boxes', 'subline_add_post_meta_boxes' );
add_action( 'save_post', 'subline_save_post_class_meta', 10, 2 );
}
function subline_add_post_meta_boxes() {
add_meta_box(
'subline-post-class',
'Subline',
'subline_post_class_meta_box',
'post',
'side',
'default'
);
}
function subline_post_class_meta_box( $post ) {
wp_nonce_field( basename( __FILE__ ), 'subline_post_class_nonce' );?>
<div class="components-base-control editor-post-excerpt__textarea">
<div class="components-base-control__field">
<label class="components-base-control__label" for="subline-post-class">Enter Subline here</label>
<input type="text" name="subline-post-class" id="subline-post-class" class="edit-post-post-schedule" value="<?php echo esc_attr( get_post_meta( $post->ID, 'subline_post_class', true ) ); ?>">
</div>
</div>
<?php }
function subline_save_post_class_meta( $post_id, $post ) {
if ( !isset( $_POST['subline_post_class_nonce'] ) || !wp_verify_nonce( $_POST['subline_post_class_nonce'], basename( __FILE__ ) ) )
return $post_id;
$post_type = get_post_type_object( $post->post_type );
if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
return $post_id;
$new_meta_value = ( isset( $_POST['subline-post-class'] ) ? $_POST['subline-post-class'] : '' );
$meta_key = 'subline_post_class';
$meta_value = get_post_meta( $post_id, $meta_key, true );
if ( $new_meta_value && '' == $meta_value )
add_post_meta( $post_id, $meta_key, $new_meta_value, true );
elseif ( $new_meta_value && $new_meta_value != $meta_value )
update_post_meta( $post_id, $meta_key, $new_meta_value );
elseif ( '' == $new_meta_value && $meta_value )
delete_post_meta( $post_id, $meta_key, $meta_value );
}
Fazit
Der Code ist eigentlich relativ selbsterklärend. Ich werde im laufe der Zeit auch noch einen Generator programmieren, womit ihr dann eure Sidebars generieren lassen und speichern könnt.