2013-05-20 48 views
1

我想創建自己的側邊欄功能,只顯示側邊欄,如果某個變量沒有顯示。該作品在一個模板文件,但不能在一個函數中的functions.php有沒有什麼辦法可以在函數中使用get_sidebar?

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

此使用my_sidebar();

時我只是想創建我的模板可重複使用的功能簡單說明不了什麼。

+0

'$ layout'在哪裏/如何設置?您可能需要將它作爲參數傳遞給您的函數,或者將其聲明爲全局函數。 – Hobo

+0

'$ layout = get_post_meta($ post-> ID,'_my_page_layout',true); '和'global $ post'在頁面模板中設置。 –

+0

$ layout在模板中設置。 –

回答

1

要回答我的問題,是的,get_sidebar將在函數function.php中工作。我遇到的問題是我的元數據不能用於該功能,即使我在調用my_sidebar();之前在模板中使用了global $post。解決方案是將全局post對象添加到我的函數以及layout變量中。

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(); 
} 
} 

感謝。

相關問題