質問: get_option('test1'); if ( !empty ($test1) ) { echo get_option('test1'); } else { echo '何も入力されていません'; } ``` としたら(書き方が合っているかは分からないですが)一応できました。 分からないところは、チェックボックス、ラジオボタン、セレクトボックスの3つで、 ``` echo get_option('test2'); //←セレクト echo get_option('test5'); //←チェック echo get_option('test6'); //←ラジオ ``` とすると3つとも「Array」と表示されてしまいます。 「wp-admin/options.php」を見ても、この3つのフィールドは「SERIALIZED DATA」となっています。 これは最初のエラーの直し方が間違っているからなのでしょうか? また、条件分岐の書き方を調べはしたのですが、たとえばラジオボタンだと全ての選択肢のnameが「test6[]」となっているので、どのように書いたら良いのかさっぱりです...。 チェックボックスにチェックが入っているかどうかは↓のように書きましたが、チェックが入っていても入っていなくても「チェックされていない」となってしまいます。 ``` if(isset($_POST['test5'])){ echo 'チェックされている'; }else{ echo 'チェックされていない'; } ``` 最初のエラーの直し方や、チェックボックスなどの取得方法が間違っているのであれば、正しい直し方を知りたいです。 よろしくおねがいいたします。
回答: 「(array)を追加すれば解決する」のは一時的な退避策であって、本来の解決策ではないですね。 (array)などの型変換は基本的に悪手で、本来は型変換することなく来た情報をそのまま使えるように渡すように組むべきです。 まず使い方が分からない機能はPHPマニュアルを見ましょう。 * array_search() 第2引数は「配列」を渡さなければなりません。 ※WordPressの機能も多いのでそちらは適宜WordPressのドキュメントを参照してみてください。 get_option()とかはまさにそうですね。 echo でArrayと表示されるのはその機能(関数)の実行結果が配列になっていることをさします。 下記のようにして、どのような情報が格納されているか確認してください。 ``` var_dump(get_option('test2')); ``` 各所でPHPの変数がでてきていますが、それぞれ想定通りの情報がセットされているでしょうか? var_dump()を利用して変数の中身が想定通りかを確認してみてください。 * PHPのvar_dumpで変数や配列の内容を出力する方法【初心者向け】