-1

誰かが私を助けることができるかどうか疑問に思っていました。私はあちこちで答えを探していましたが、答えが見つからないようです。

私はPHPの初心者で、WordPressにかなり精通しています。デフォルトの21のテーマに3つの新しいレイアウトを追加しました。私がこの作業を想定した方法は、誰かが特定のレイアウトを選択した場合、追加のサイドバーが表示されるというものでした。だから私は次のことを思いついた(ええ、私はそれがおそらく正しくないことを知っていますが、私はそれを自分でやった、そしてそれはうまくいく...笑)

            $options = themeawesome_get_theme_options();
            $classes = $options['three-column' || 'three-column-left' || 'three-column-right'];
            if ( 'content' != $classes ) {
            get_sidebar('alt');
            }

言ったように、テーマオプションパネルでこれらの選択肢のいずれかが選択されている場合は、うまく機能し、代替サイドバーが表示されます。

唯一のことは、次のエラーが発生することです。

未定義のオフセット:8行目に1

8行目は上記のコードの2行目です。

誰かが私がこのエラーを取り除くのを手伝ってもらえますか?どんな助けでも大歓迎です、そして前もってありがとう。

4

1 に答える 1

0

次のように、配列で複数のインデックスを使用することはできません。

$classes = $options['three-column' || 'three-column-left' || 'three-column-right'];

あなたが達成しようとしている目標が正確にはわからないので、それを修正する方法について複数の答えがあります。

まず、利用可能なテーマのリストを宣言します。

$themes = array('three-column', 'three-column-left', 'three-column-right');

$classes各クラスの配列が必要な場合は、次のことを試してください。

$classes = array();
foreach ($themes as $theme) {
    if (isset($options[$theme])) {
        $classes = $options[$theme]; 
    }
}

「利用可能な最初のテーマ」を取得したい場合は、次を試してください。

$classes = '';
foreach ($themes as $theme) {
    if (isset($options[$theme])) {
        $classes = $options[$theme];
        break;
    }
}

if-statement(if ('content' != $classes))が単一の文字列をチェックしているので、私の例の2番目はあなたのニーズに合うかもしれません。

于 2012-07-23T14:47:17.993 に答える