Publicar solo enganchar?

4

¿Hay algún enlace que se dispare solo cuando la publicación se "publica" por primera vez?

No deseo ejecutar mi código cuando la publicación está "actualizada" o cuando su estado está configurado como "no publicado" y luego "publicado" nuevamente.

EDITAR:

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 );
}
    
pregunta BAU 01.04.2012 - 14:39

1 respuesta

5

El {$old_status}_to_{$new_status} y {$new_status}_{$post->post_type} ganchos tienden a resolver el problema en general.

Para evitar ejecutar el código en caso de que el estado de la publicación se cambie a borrador y luego se publique nuevamente (después de haber sido publicado), implemente una marca simple con la funcionalidad post_meta .

Nota : el enlace actualizado debe ser 'draft_to_publish' en lugar de 'draft_to_published' sin embargo, el código a continuación no se modifica y debería serlo si planea usarlo en WP 3.5

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 );
    }
}
    
respondido por el soulseekah 01.04.2012 - 15:38

Lea otras preguntas en las etiquetas