创建关于21-11主题的自定义模板时遇到麻烦

时间:2012-02-28 作者:Abdel Raoof Olakara

我正在尝试扩展twentyeleven主题的侧边栏模板。我的自定义模板(不完整)如下所示:

<?php
/**
 * Template Name: Quote Request
 * Description: A Page Template that is a free quote request form
 *
 * @package WordPress
 * @subpackage Twenty_Eleven (Custom)
 * @since Twenty Eleven 1.c
 */ 
get_header(); ?>

        <div id="primary">
            <div id="content" role="main">

                <?php while ( have_posts() ) : the_post(); ?>

                    <?php get_template_part( \'content\', \'page\' ); ?>

                    <?php comments_template( \'\', true ); ?>

                <?php endwhile; // end of the loop. ?>

            </div><!-- #content -->
        </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
我只是命名了一个侧边栏页面的副本。我相信php是用来创建边栏模板页面的。但我没有得到预期的结果。以下是我得到的:

My template result

但当我从编辑器中选择侧栏模板时,我得到:

Sidebar template

我正在尝试在添加自定义页面元素之前实现这一点。有人能给我指出正确的方向吗?我刚刚开始使用wordpress。

1 个回复
最合适的回答,由SO网友:Michael 整理而成

您需要更正自动添加的body\\u类.singular 获取布局;

例如,在函数中使用此选项。您的phpchild theme (您应该创建它来使用它):

add_filter(\'body_class\', \'pagetemplate_adjust_body_class\', 20, 2);
function pagetemplate_adjust_body_class($wp_classes, $extra_classes) { 

if( is_page_template(\'new-sidebar-page-template-file-name.php\') ) :
// Filter the body classes     

      foreach($wp_classes as $key => $value) {
      if ($value == \'singular\') unset($wp_classes[$key]);
      }

endif;
// Add the extra classes back untouched
return array_merge($wp_classes, (array) $extra_classes );
}
如果您使用的是二十一的克隆,请参见函数末尾。php并使用页面tempalte扩展此行:

if ( is_singular() && ! is_home() && ! is_page_template( \'showcase.php\' ) && ! is_page_template( \'sidebar-page.php\' ) )

结束

相关推荐