Post Metas in WordPress Gutenberg

Post Metas in die Sidebar verankern

    Inhaltsangabe
  1. Dokument Tab
    1. Beispiel Code
  2. Fazit

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.

Themen

Gutenberg php Technik WordPress

Beitrag teilen

WhatsAppen

Folgen Sie uns