WordPress Beitragsformate in MarsEdit erstellen

Ich nutze gerne MarsEdit, um Beiträge für mkln.org zu verfassen. MarsEdit unterstützt von Haus aus die WordPress Beitragsformate nicht, weshalb ich meine functions.php um einen Codeschnipsel ergänzt habe, der einen Artikel ins dementsprechende Beitragsformat umwandelt, wenn ein bestimmtes benutzerdefiniertes Feld vorhanden ist. Ist beispielsweise das Feld „link-url“ nicht leer, wird der Artikel beim Speichern in einen Link-Beitrag umgewandelt. Findet sich in „video-embed“ eine URL oder ein Shortcode, erstellt WordPress einen Video-Beitrag.

Da MarsEdit seit Version 3 benutzerdefinierte Felder unterstützt, ist das kein Problem. Hier mein Code in der functions.php, der vorläufig nur Link- und Video-Beiträge berücksichtigt:

/**
 * If link- or video-entry (and not saved as such), change to link or video post format
 */
function mklnorg_change_post_format( $post_id ) {
    // Get current post format
    $post_format = get_post_format( $post_id );

    // Get all custom keys
    $metadatakeys = get_post_custom_keys( $post_id );

    // Loop those custom keys       
    foreach ( $metadatakeys as $key => $value ) {

        // Remove white spaces and other nervous-finger stuff
        $valuet = trim($value);

        // Skip WordPress-internal custom fields
        if ( '_' == $valuet{0} )
          continue;

        // Switch post format depending on custom field
        switch ( $valuet ):
            case 'link-url':
                if ( 'link' !== $post_format )
                    set_post_format( $post_id, 'link' );
                break;
            case 'video-embed':
                if ( 'video' !== $post_format )
                    set_post_format( $post_id, 'video' );
                break;
        endswitch;
    }
}
add_action( 'publish_post', 'mklnorg_change_post_format' );

Sicherlich könnte ich hier auch die „richtigen“ benutzerdefinierten Felder verwenden, die fürs Speichern von Links, Videos, etc. in den WordPress 3.6er Betas verwendet wurden (_format), doch spricht nichts dagegen die vorhandenen „link-url“ bzw. „video-embed“ später umzuwandeln.

Nichts zu danken.