質問: get_posts( $args ); add_post_meta( $posts_array -> ID, recommend_post, "on", false ); } ``` ### 試したこと 上記のようなコードを記述したのですが、PV数が5以上になっても何も起こりませんでした。 基本的な問題なのかもしれませんが、解決方法をご教示頂けますと幸いです。 ### 補足情報(言語/FW/ツール等のバージョンなど) php バージョン7.0 Wordpress 4.5 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/f1c9d91b71398903677735cef8ce2afd.png)
回答: 作った関数を動かすためには、なんらかのアクションにフックさせる必要があるのではないでしょうか。 **参考サイト** * * ### 追記 `$posts_array`は配列だと思うので、foreachで回す必要があるかと思います。 ``` $posts_array = get_posts( $args ); // デバッグ用コード($posts_arrayが配列であることを確認する) ?> ID, recommend_post, "on", false ); } ``` それから、$argsも以下のように。 ``` $args = array( 'meta_query' => array('key'=>'post_views_count','value'=>5,'compare'=>'>'), ); ``` ### 追記2 WordPress Codex:WP_Queryの「単一のカスタムフィールドの取扱い」の部分に、 > > (meta_query はクエリがひとつだけでも入れ子の配列を指定しなければなりません。) > > > とありましたので、コードを修正しました。 ``` $args = array( // 'meta_query' => array('key'=>'post_views_count','value'=>5,'compare'=>'>'), 'meta_query' => array( array('key'=>'post_views_count','value'=>5,'compare'=>'>'), ), ); $posts_array = get_posts( $args ); foreach( $posts_array as $post){ //add_post_meta( $post -> ID, recommend_post, "on", false ); add_post_meta( $post -> ID, recommend_post, "on", true ); } ```