update_post_meta siempre que se actualiza el tipo de entrada personalizado

Necesito la siguiente funcionalidad. Cuando se actualiza o se salvó mi correos personalizados tipo necesito sobrescribir ciertas metas de correos personalizados. Necesito asegurarme de que este único puestos afecta del post tipo 'VA_LISTING_PTYPE' y que el tiene para el 'meta_key' => 'gato aparece' el 'meta_value' => 1 el código que estoy usando en este momento es la siguiente (no funciona)
//Remove urls from free listings
function remove_url_free_post( $post_id ) {

$slug = 'VA_LISTING_PTYPE',
    if ( $slug != $_POST['post_type'] ) {
    return;
    }

    $meta_values = get_post_meta( $post_id, 'featured-cat', true );
if ( $meta_values != 1 ) {
    return;
    }

    update_post_meta($post_id, 'website', '');
    update_post_meta($post_id, 'twitter', '');
    update_post_meta($post_id, 'facebook', '');

}
add_action('save_post', 'remove_url_free_post');
También traté de acción diferentes ganchos como pre_post_update de esto answer No puedo conseguir trabajo.

La solución sólo realmente fea que está trabajando para mí ahora es ésta:
//Remove urls from free listings
function remove_url_free_post() {
    //Fetches all the listings that have featured cat which equals free listing for us
    $r = new WP_Query( 
    array( 
        'post_type' => VA_LISTING_PTYPE,
        'no_found_rows' => true,
        'meta_key' => 'featured-cat',
        'meta_value' => 1
    ) );
    if ( $r->have_posts() ) :
    while ( $r->have_posts() ) : $r->the_post();

    //removes the website, twitter and facebook
    $post_id3 = get_the_ID();
    update_post_meta($post_id3, 'website', '');
    update_post_meta($post_id3, 'twitter', '');
    update_post_meta($post_id3, 'facebook', '');

    endwhile;
    endif;
}
//Not ideal at all as called everytime, save_post not working as intended
add_action('wp_footer', 'remove_url_free_post');
//Remove urls from free listings
function remove_url_free_post() {
    //Fetches all the listings that have featured cat which equals free listing for us
    $r = new WP_Query( 
    array( 
        'post_type' => VA_LISTING_PTYPE,
        'no_found_rows' => true,
        'meta_key' => 'featured-cat',
        'meta_value' => 1
    ) );
    if ( $r->have_posts() ) :
    while ( $r->have_posts() ) : $r->the_post();

    //removes the website, twitter and facebook
    $post_id3 = get_the_ID();
    update_post_meta($post_id3, 'website', '');
    update_post_meta($post_id3, 'twitter', '');
    update_post_meta($post_id3, 'facebook', '');

    endwhile;
    endif;
}
//Not ideal at all as called everytime, save_post not working as intended
add_action('wp_footer', 'remove_url_free_post');
.


Solución

Tienes razón usar el gancho de acción 'save_post'. Pruebe esto:
<?php

add_action('save_post', 'some_function');

function some_function($post_id)
{
        if(get_post_type($post_id) != "VA_LISTING_PTYPE")
        return;
    $meta_value = get_post_meta( $post_id, 'featured-cat', true );
    if($meta_value != 1)
        return;
    update_post_meta($post_id, 'website', '');
    update_post_meta($post_id, 'twitter', '');
    update_post_meta($post_id, 'facebook', '');
}
Si eres de Wordpress 3.7 o superior, se puede utilizar de esta manera:
add_action('save_post_VA_LISTING_PTYPE', 'some_function');

function some_function($post_id)
{
    $meta_value = get_post_meta( $post_id, 'featured-cat', true );
    if($meta_value != 1)
        return;
    update_post_meta($post_id, 'website', '');
    update_post_meta($post_id, 'twitter', '');
    update_post_meta($post_id, 'facebook', '');
}
Espero que trabajo con usted..




Problemas relacionados

Actualizar un campo personalizado en un tipo de mensaje personalizado

Tipo de entrada personalizado, salvando varias casillas de verificación

¿Hay una acción para cuando se reconstruyen los permalinks?

Guardar post_parent en un tipo de mensaje personalizado

Tipo personalizado de Post con campos de entrada para separar la tabla de la base de datos.

¿Añadir acción para crear nueva entrada después de fuegos wp_insert_post? Creo que se está creando un bucle infitnite

Quitar el post_tag tipo de entrada por defecto, Agregar taxonomía personalizada

Ahorro revisión del post meta clave\/valor en cada evento de update_post_meta

¿Cambiar plantilla del Post de tipo de medida o Permalink cambiar dinámicamente?

Correos personalizados tipo cómo conseguir la casilla de verificación actualizar meta campo null

¿Caja meta vacía devuelve publishdate si no se establece ningún valor?

¿update_post_meta no funciona?

Source: Stack Exchange Inc; License: cc by-sa 3.0 Contacto / Contact