使用函数减少重复

时间:2016-03-21 17:38:13

标签: php wordpress

我正在创建一个WordPress主题,我创建了一个选项面板,其中包含侧边栏位置(无,左,右)的设置,但我还为每个页面帖子添加了一个设置(默认,左,右,无)它取代了一般选项。

要在我的index.php页面上进行此操作,我有以下代码;

<?php get_header(); ?>

<?php    

// Sidebar position selected on the page/post
$IndivSidebarPosition = get_field('sidebar');

// Default sidebar position for the site.
$DefaultSidebarPosition = sprintf( get_theme_mod( 'graviton_sidebar_position' ) ) ;

if( $IndivSidebarPosition == 'left' || $IndivSidebarPosition == 'right' ) {

    $SidebarPosition = $IndivSidebarPosition;

} else {

    $SidebarPosition = $DefaultSidebarPosition;
}


?>

    <div class="container">

        <div class="row">

            <?php if ( $IndivSidebarPosition != 'none' and $DefaultSidebarPosition != 'none' ) {

      echo '<div class="wrapper">'; 
          echo '<div class="col-xs-12 col-sm-3 col-md-3 sidebar '.$SidebarPosition.'-sidebar">';
                    get_sidebar(); ?>

                </div>

                <div class="col-xs-12 col-sm-12 col-md-9 feature">

                    <div class="col-xs-12 col-sm-12 col-md-12 page-style">

                    <?php 

                        if( have_posts() ):

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

                            <div class="col-xs-12 col-sm-12-col-md-12">

                                <?php the_content(); ?>

                            </div>

                            <?php endwhile;

                        endif;

                    ?>

                    </div>
                </div>

            </div>

            <?php } else { ?>


            <div class="col-xs-12 col-sm-12 col-md-12 page-style">

            <?php 

                if( have_posts() ):

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

                    <div class="col-xs-12 col-sm-12-col-md-12">

                        <?php the_content(); ?>

                    </div>

                    <?php endwhile;

                endif;

            ?>

            </div>

            <?php } ?>

        </div>

    </div>

<?php get_footer(); ?>

代码工作正常,但是,我必须将其复制到几个页面和页面模板,我认为这将是很多重复,特别是因为一些模板要复杂得多。我认为分配$ SidebarPosition的第一个文本块可以在function.php文件中成为一个函数。但是我无法理解如何创建一个能够显示主div块(包含类页面样式/特征的那个)而不重复的函数。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用模板文件并在需要时调用它们。例如,您可以在文件中只包含一个文件中所需的渲染或特定PHP + HTML代码,并在需要时包含它。每次需要输出时,您仍然需要调用该函数,但所有内容都包含在一个文件中。要实现这一目标,请点击此链接:

https://developer.wordpress.org/reference/functions/get_template_part/