1

特定の変数が表示されていない場合にのみサイドバーを表示する独自のサイドバー関数を作成しようとしています。これはテンプレートファイルでは機能しますが、functions.php の関数では機能しません

    function my_sidebar(){
        if(($layout == 'left') || ($layout == 'right')){
            get_sidebar();
        }
    }

これは、使用時に単に何も表示しませんmy_sidebar();

テンプレート用に再利用可能な関数を作成しようとしています。

4

1 に答える 1

1

私の質問に答えると、はい、get_sidebar は functions.php の関数で機能します。私が抱えていた問題は、呼び出しglobal $post前にテンプレートで使用していたにもかかわらず、関数でメタデータを使用できないことでした。my_sidebar();解決策は、グローバル ポスト オブジェクトを関数とレイアウト変数に追加することでした。

function my_sidebar(){
global $post;
  $layout = get_post_meta( $post->ID, '_my_page_layout', true );
  if(($layout == 'left') || ($layout == 'right')){
  get_sidebar();
}
}

より簡潔にするために、if ステートメントを変更しました。

function my_sidebar(){
global $post;
  $layout = get_post_meta( $post->ID, '_my_page_layout', true );
  if($layout !='none'){
  get_sidebar();
}
}

ありがとう。

于 2013-05-21T00:25:43.247 に答える