2013-05-20 183 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(); 
} 
} 

感谢。

相关问题