###目的
WordPressなんですけど、記事のカスタムフィールドの値を指定して、記事の存在を判定することってできませんか?
下記【条件A】かつ【条件B】を満たすか否かで、
if ( !animal_check ){ … }else{ … }
(もし記事が存在しないなら…、存在するなら…)
のように記事の存在を判定したいという目的です。
###条件
【条件A】
カスタムフィールドの'animal_type'
が$animal_type
の記事が存在する。
【条件B】
カスタムフィールドの'animal_name'
が$animal_name
の記事が存在する。
###試したソースコード
このコードで判定しているつもりですがうまくいかず、何か間違えているのか教えていただけませんでしょうか。
PHP
1// 入力値を受け取る 2$animal_type = 'dog'; 3$animal_name = 'mutt'; 4 5// 既存を確認 6$animal_check = get_posts( 7 'post_type' => 'animal', 8 'meta_query' => array( 9 'relation' => 'AND', // ここでエラーが出る 10 array( 11 'key' => 'animal_type', 12 'value' => $animal_type, 13 'type' => 'CHAR', 14 'compare' => '=' 15 ), 16 array( 17 'key' => 'animal_name', 18 'value' => $animal_name, 19 'type' => 'CHAR', 20 'compare' => '=' 21 ) 22 ), 23); 24 25// 既存なければ記事を登録 26if ( !$animal_check ){ 27 wp_insert_post( 28 array( 29 'post_type' => 'animal', 30 'animal_type' => $animal_type. 31 'animal_name' => $animal_name. 32 ) 33 ); 34} 35 36// 既存あれば記事IDを表示 37else{ 38 setup_postdata( $animal_check ) 39 echo get_the_ID(); 40}
###PHPエラー
上のソースコードで「// ここでエラーが出る」とコメントしてありますが、こちらのエラーです。
Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ',' or ')' in.....
あともし他にも目的に沿わない点がありましたらご指摘いただけますと幸いです。