Speichern Sie den Standardwert für leeres oder fehlendes Post-Meta

Ich verwende WordPress und verwende ein benutzerdefiniertes Feld mit dem Namen ecpt_carprice für jeden Post, den ich veröffentliche. Das Feld wird in wp_postmeta wie das angehängte Bild gespeichert:

Einige meiner Autos (Posts) haben keinen ecpt_carprice .
Kannst du mir irgendwelche Mittel (WordPress / PHP oder SQL-Abfrage) zur Verfügung stellen, um für jeden Beitrag ohne den Meta-Eintrag einen neuen Eintrag mit dem Wert 0 zu speichern?

Ich habe diesen Code, aber ich weiß nicht, wie ich ihn benutze

 if ( has_term( '', 'car_brand' )) { //check if the meta field has a value $meta_values = get_post_meta($post->ID, 'ecpt_carprice', true); if(empty($meta_values)){ //add a default value add_post_meta($post->ID, 'ecpt_carprice', '0'); } 

}

Solutions Collecting From Web of "Speichern Sie den Standardwert für leeres oder fehlendes Post-Meta"

Wenn Sie wollen und nur tun müssen, was @tf vorgeschlagen hat, was ist nur um eine 0 anzuzeigen, wenn kein Wert vorhanden ist, können Sie eine function erstellen, um dies so zu tun:

 function wpse121165_return_carprice() { $ecpt_carprice = get_post_meta($post->ID, 'ecpt_carprice', true); if(! empty( $ecpt_carprice ) ){ return $ecpt_carprice; } else { return 0; } } 

Verwenden Sie die function wie echo wpse121165_return_carprice(); : echo wpse121165_return_carprice();

Wenn Sie Ihre database wirklich aktualisieren müssen, müssen Sie dies auf eine andere Weise tun. Der folgende Code soll Ihnen einen Einblick geben, wie es gemacht wird:

  function wpse121165_update_carprice_meta() { // args to query for your key $args = array( 'post_type' => 'your_post_type', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'ecpt_carprice', 'value' => 'bogus', // you have to pass a value 'compare' => 'NOT EXISTS' ), array( 'key' => 'ecpt_carprice', 'value' => '' ) ), 'fields' => 'ids' ); // perform the query to get back an array of ids $not_exist_or_empty_ids = new WP_Query( $args ); foreach ( $not_exist_or_empty_ids as $id ) { update_post_meta($id, 'ecpt_carprice', '0'); } } 

Verwenden Sie die function wie wpse121165_update_carprice_meta(); : wpse121165_update_carprice_meta(); . Wenn Sie dies in Ihre functions.php und Ihr Meta-Update auf der database durchführen, stellen Sie sicher, dass Sie es danach deaktivieren und nicht mehr und immer wieder aufrufen.