0

高度なカスタム フィールドの内容が 0 の場合にのみ、この関数を呼び出すにはどうすればよいですか?

 function updateNumbers() {
     global $wpdb;  
     $querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb-posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post'";  
     $pageposts = $wpdb->get_results($querystr, OBJECT);  
     $counts = 1440 ;  
     if ($pageposts):  
       foreach ($pageposts as $post):
         setup_postdata($post);  
         $counts++;  
         add_post_meta($post->ID, 'incr_number', $counts, true);  
         update_post_meta($post->ID, 'incr_number', $counts);  
       endforeach;  
     endif;     remove_action ( 'publish_post', 'updateNumbers' ); 
 }     

 add_action ( 'publish_post', 'updateNumbers' );

よろしくお願いします!

++++++編集++++++

明確にするために、これはコンテキストで関数を説明する必要があります。

div は、ACF プラグインによって制御される wordpress フィールドによって入力されます。

<?php $post_id = get_field('job-number'); ?>
div class="postID"><?php echo $post_id ?></div>

この値が 0 の場合、この関数を実行します。

 function updateNumbers() {
     global $wpdb;  
     $querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type =
 'post'";  
     $pageposts = $wpdb->get_results($querystr, OBJECT);  
     $counts = 1440 ;  
     if ($pageposts):  
     foreach ($pageposts as $post):
     setup_postdata($post);  
     $counts++;  
     add_post_meta($post->ID, 'incr_number', $counts, true);  
     update_post_meta($post->ID, 'incr_number', $counts);  
     endforeach;  
     endif; }

 add_action ( 'publish_post', 'updateNumbers' );
4

1 に答える 1

0

Something like the following seems to be what you're after...

<?php
    $key = 'field_name';
    $meta = get_post_meta($post->ID, $key, true);
    if ($meta == '0') {
        updateNumbers();
    }
?>
于 2013-01-11T17:01:51.683 に答える