什么是WordPress中多个部分首页的最佳/最常用的方法

时间:2014-07-29 22:53:15

标签: wordpress themes wordpress-theming

我是WordPress的新手,我正在考虑开发一些高级主题。我发现这一天真正的趋势是这些主题,在第一页的水平块中分隔了多个部分。像这样的东西:

<section class="about-us row">
<h1> About us</h1>
<p>Some lorem here </p>
</section> 

<section class="features row">
<h1> Features</h1>
<div class="col-1-3">
<h2>Responsive and shit</h2>
<p>Some lorem here </p>
</div>
<div class="col-1-3">
<h2>Free support</h2>
......
</section> 

<section class="testimonials">
........
</section>

我想知道开发人员为最终用户提供此功能的最佳或最常用的方法是什么。

我看到一些最畅销的主题是使用页面构建器来管理它作为短代码,但我不打算使用任何页面构建器,至少不是在我的第一个主题中,我注意到它很容易获得使用它们时代码混乱,所以我想从简单开始。

那么伙计们,你能帮帮我吗?答案是否只使用短代码? 谢谢

1 个答案:

答案 0 :(得分:2)

第1步:

我建议您使用首页模板中的get_template_part()功能将布局分成几个部分。这样做的好处是您可以在任何页面模板中调用所需的布局部分,如:get_template_part('testimonials');。如果需要,您甚至可以在页眉和页脚中使用它们。

在您的情况下,我假设有3个模板部分:关于我们,功能和推荐。您将需要创建3个PHP文件,其中包含这3个部分中的每个部分的所有代码。 PHP文件需要位于模板的根文件夹中。 PHP文件显然可以使用PHP但是你需要它,但主要的想法是那个部分的HTML代码或&#34;模板部分&#34;将放在它自己的PHP文件中。如果您需要从wordpress中提取帖子,或者执行数据库查询以生成该部分的内容,您可以单独为其中包含自包含的PHP文件中的每个模板部分执行此操作。出于此示例的目的,我们假设您已为模板部件about_us_part.phpfeatures_part.phptestimonials_part.php调用了PHP文件。

创建3个PHP文件后,确保将它们放在模板根目录中,只需将以下代码行放在任何您想要的特定部分或&#34;模板部分&#34;出现在Wordpress页面模板中。像这样:

<?php get_template_part( 'about_us_part' );      // About Us (about_us_part.php) ?>
<?php get_template_part( 'features_part' );      // Features (features_part.php) ?>
<?php get_template_part( 'testimonials_part' );  // Testimonials (testimonials_part.php) ?>

基本上,get_template_part( '{slug}' );会在模板根目录中搜索与{slug}.php匹配的文件名。所以你可以随心所欲地命名它,但是如果找不到匹配的PHP文件,显然什么都不会出现。 get_template_part()还有另一个选项,允许您指定模板部分的名称。但是它是可选的而不是必需的,您可以这样使用它:

<?php get_template_part( 'about_us_part', 'about-us' );      // About Us (about_us_part.php) ?>
<?php get_template_part( 'features_part', 'features' );      // Features (features_part.php) ?>
<?php get_template_part( 'testimonials_part', 'testimonials' );  // Testimonials (testimonials_part.php) ?>

您可以在此处阅读Wordpress codex中有关get_template_part()的更多信息: http://codex.wordpress.org/Function_Reference/get_template_part

第2步:

现在说您想允许用户使用短代码显示这些模板部件,您需要在functions.php文件中为他们提供该功能。例如,假设我们想为上面的3个模板部分中的每一个创建3个短代码。您可以使用Wordpress Shortcode API轻松完成。您可以将以下代码添加到functions.php文件中:

<强> [about_us]

function themeprefix_about_us_shortcode( $attr ) {
    ob_start(); // Start output buffer
    get_template_part( 'about_us_part' ); //Get about_us_part.php
    return ob_get_clean(); //Clear output buffer
}
add_shortcode( 'about_us', 'themeprefix_about_us_shortcode' );

该功能在functions.php文件中,以及匹配的add_shortcode()功能后,用户可以使用短代码[about_us]来调出“关于我们”部分。 add_shortcode()函数的两个部分是短代码名称,以及为短代码生成内容的函数。像这样:add_shortcode( '{shortcode name}', '{shortcode function}' );

您需要为其他2个短代码再创建2个:

<强> [特征]

function themeprefix_features_shortcode( $attr ) {
    ob_start(); // Start output buffer
    get_template_part( 'features_part' ); //Get features_part.php
    return ob_get_clean(); //Clear output buffer
}
add_shortcode( 'features', 'themeprefix_features_shortcode' );

<强> [推荐]

function themeprefix_testimonials_shortcode( $attr ) {
    ob_start(); // Start output buffer
    get_template_part( 'testimonials_part' ); //Get testimonials_part.php
    return ob_get_clean(); //Clear output buffer
}
add_shortcode( 'testimonials', 'themeprefix_testimonials_shortcode' );

注意: 我放置了&#34; themeprefix&#34;在每个功能的前面。我建议用您的主题名称替换它,或者在主题的功能名称前面使用您可能使用的任何前缀。但是,函数名称可以是您想要的任何名称,只需确保将add_shortcode()更新为新函数名称。

您可以在此处阅读Wordpress codex中有关add_shortcode()的更多信息: http://codex.wordpress.org/Function_Reference/add_shortcode

另外,我建议您阅读codex中的Shortcode API页面,了解如何在短代码中添加参数: http://codex.wordpress.org/Shortcode_API