>>そのためには $category_ids が配列でないとダメです。
僕も質問させてください。
配列を返す関数を変数で受け取ると変数の型が変わって
配列受け取ると思うんですけど、$category_idsが配列でないとダメな理由って
何かあるんでしょうか?お手すきでしたらご教授ください。
http://php.net/manual/ja/control-structures.foreach.php
foreach は、配列を反復処理するための関数です。
ですので、foreach に渡す $category_ids は配列でなければなりません。
ところが get_post_meta($post->ID , 'post_category_name' ,true);
の戻り値は文字列です。
このままではエラーが起きますので、文字列である $category_ids をどこがで配列に型変換してあげないとダメです。
get_post_meta($post->ID , 'post_category_name' ,false);
とすれば配列の戻り値になりますが、そもそものカスタムフィールドに、保存されているカテゴリーIDをカンマ区切りにしているのであれば、余り意味はないです。
カスタムフィールドの使い方などは
http://wpdocs.sourceforge.jp/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
に書いてあります。
一つのフィールドににカンマ区切りでは無く、
– 「post_category_name」という名前のカスタムフィールドにカテゴリーIDは一つにする。
– 複数指定したい場合は「post_category_name」を増やしていく。
という運用にするのであれば、
get_post_meta($post->ID , 'post_category_name' ,false);
で登録したカテゴリーIDを配列として受け取れます
get_post_meta($post->ID , ‘post_category_name’ ,false);
だと思って話してました。どうも失礼しました。
先生ご返信ありがとうございます。もう一度チャレンジしてみます。
結果ご報告いたします。
ん〜だめでした。一度スレッドクローズして出直してみようか検討中です(汗
metaboxesで解決致しました。ご指導ありがとうございました。