it-swarm.com.de

Post veröffentlichen nur Haken?

Gibt es einen Haken, der nur ausgelöst wird, wenn der Beitrag zum ersten Mal "veröffentlicht" wird?.

Ich möchte meinen Code nicht ausführen, wenn der Beitrag "aktualisiert" ist oder wenn sein Status auf "nicht veröffentlicht" und dann auf "erneut veröffentlicht" gesetzt ist.

BEARBEITEN:

add_action('draft_to_published','func_tion');

function func_tion($post){
    $post_id = $post->ID;   

    if ( !get_post_meta( $post_id, 'mycoderan', $single = true ) )
    // run code to manipulate data
    wp_enqueue_script('plugin_name',plugin_dir_url(__FILE__ ).'script.js');
    $params = array() // set parameters
    wp_localize_script('plugin_name', 'params', $params );
    update_post_meta( $post_id, 'mycoderan', true );
}
4
BAU

Die Haken {$old_status}_to_{$new_status} und {$new_status}_{$post->post_type} lösen das Problem im Allgemeinen.

Um zu vermeiden, dass der Code ausgeführt wird, falls der Post-Status in Entwurf geändert und dann erneut veröffentlicht wird (nachdem er bereits veröffentlicht wurde), implementieren Sie ein einfaches Flag mit der Funktion post_meta.

Hinweis : Der aktualisierte Hook sollte "draft_to_publish" anstelle von "draft_to_published" lauten. Der folgende Code wird jedoch nicht geändert und sollte verwendet werden, wenn Sie beabsichtigen, ihn in WP 3.5 zu verwenden

add_action( 'draft_to_published', 'wpse47566_do_once_on_publish' );
function wpse47566_do_once_on_publish( $post ) {
    // check post type if necessary
    if ( $post->post_type != 'a_specific_type' ) return;

    $post_id = $post->ID;

    if ( !get_post_meta( $post_id, 'mycoderan', $single = true ) ) {
        // ...run code once
        update_post_meta( $post_id, 'mycoderan', true );
    }
}
5
soulseekah