部分和其他模板文件

  1. 主頁(yè)
  2. 文檔
  3. WordPress主題開(kāi)發(fā)手冊(cè)
  4. 模板文件
  5. 部分和其他模板文件

并不是所有的模板文件都會(huì)生成將由瀏覽器呈現(xiàn)的整個(gè)內(nèi)容。 一些模板文件被其他模板文件拉入,如comments.php,header.php,footer.php,sidebar.php和content-{$ slug} .php。 您將通過(guò)這些模板文件中的每一個(gè)來(lái)了解目的以及如何構(gòu)建它們。

Header.php

header.php文件完全符合您的期望。它包含網(wǎng)頁(yè)頁(yè)眉呈現(xiàn)的所有代碼。這是一個(gè)部分模板文件,除非其他模板文件通過(guò)get_header() 這個(gè)模板標(biāo)簽進(jìn)行調(diào)用,否則瀏覽器將不會(huì)呈現(xiàn)此文件的內(nèi)容。

通常網(wǎng)站具有相同的頁(yè)眉,無(wú)論您所在的頁(yè)面或帖子如何。 但是,根據(jù)頁(yè)面的不同,一些網(wǎng)站會(huì)有輕微的變化,例如輔助導(dǎo)航或不同的橫幅圖像。 如果您使用條件標(biāo)簽,您的header.php文件可以處理所有這些變體。

幾乎所有主題都有一個(gè)header.php文件,因?yàn)榇宋募墓δ芎涂删S護(hù)性決定了它的重要性。

以下是 twenty fifteen 主題中header.php示例:

<!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js">
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width">
    <link rel="profile" >
    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
    <!--[if lt IE 9]>
    <script src="<?php echo esc_url( get_template_directory_uri() ); ?>/js/html5.js"></script>
    <![endif]-->
    <?php wp_head(); ?>
</head>

<body <?php body_class(); ?>>
 
<div id="page" class="hfeed site">
    <a class="skip-link screen-reader-text" href="#content"><?php _e( 'Skip to content', 'twentyfifteen' ); ?></a>
 
<div id="sidebar" class="sidebar">
 
<header id="masthead" class="site-header" role="banner">
 
<div class="site-branding">
                <?php if ( is_front_page() && is_home() ) : ?>
 
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
 
                    <?php else : ?>
 
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
 
                    <?php endif; $description = get_bloginfo( 'description', 'display' ); if ( $description || is_customize_preview() ) : ?>
 
<?php echo $description; ?>
 
                    <?php endif; ?>
                <button class="secondary-toggle"><?php _e( 'Menu and widgets', 'twentyfifteen' ); ?></button>
            </div>
 
<!-- .site-branding -->
        </header>
 
<!-- .site-header -->
 
        <?php get_sidebar(); ?>
    </div>
 
<!-- .sidebar -->
 
<div id="content" class="site-content">

一些代碼首先可能看起來(lái)有點(diǎn)令人生畏,但如果我們把它打破了,那就變得簡(jiǎn)單了。開(kāi)始之后,head標(biāo)簽就被創(chuàng)建。 通過(guò)模板標(biāo)簽 wp_head()引入了我們?cè)?code> functions.php 文件中排隊(duì)引入的所有CSS文件和一些必須在頁(yè)眉加載的js文件。

接下來(lái),就到了body標(biāo)簽,HTML和PHP混合在一起使用了。 您可以在 site-branding 這個(gè)div中看到一些條件標(biāo)簽,用來(lái)判斷用戶當(dāng)前在哪些頁(yè)面,來(lái)顯示不同的內(nèi)容。 然后是添加導(dǎo)航菜單。最后,site-content內(nèi)容div被打開(kāi),然后它應(yīng)該最終在footer.php文件中進(jìn)行閉合。

要注意的一個(gè)重要的模板標(biāo)簽是在開(kāi)頭body標(biāo)簽中找到的body_class()。 這是一個(gè)超級(jí)方便的標(biāo)簽,通過(guò)根據(jù)模板文件和其他正在使用的設(shè)置來(lái)添加body標(biāo)簽的類(lèi)名,使您的主題更容易設(shè)計(jì)。

header.php文件一樣,footer.php是一個(gè)非常常見(jiàn)的模板文件,大多數(shù)主題都使用。 footer.php文件中的代碼將不會(huì)被渲染,除非在另一個(gè)模板文件使用get_footer()模板標(biāo)簽來(lái)引入footer.php。 與頁(yè)眉類(lèi)似,您可以使用條件標(biāo)簽來(lái)創(chuàng)建頁(yè)腳的變體。

開(kāi)發(fā)人員通常會(huì)將小工具區(qū)域放在頁(yè)腳中,以便最終用戶可以輕松地將不同的內(nèi)容類(lèi)型拖放到頁(yè)腳中。

以下是Twenty Fifteen主題的footer.php文件的示例。

    </div>
 
<!-- .site-content -->
 
<footer id="colophon" class="site-footer" role="contentinfo">
 
<div class="site-info">
            <?php /** * Fires before the Twenty Fifteen footer text for footer customization. * * @since Twenty Fifteen 1.0 */ do_action( 'twentyfifteen_credits' ); ?>
            <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyfifteen' ) ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentyfifteen' ), 'WordPress' ); ?></a>
        </div>
 
<!-- .site-info -->
    </footer>
 
<!-- .site-footer -->
 
</div>
 
<!-- .site -->
 
<?php wp_footer(); ?>
 
</body>
</html>

404.php

當(dāng)用戶嘗試訪問(wèn)您網(wǎng)站上不存在的頁(yè)面時(shí),會(huì)將其導(dǎo)向到index.php頁(yè)面,除非您已經(jīng)創(chuàng)建了一個(gè)404.php模板。 這是一個(gè)好主意,有一些消息,說(shuō)明頁(yè)面丟失或不再可用。 創(chuàng)建此模板有助于保持主題的視覺(jué)方面一致,并向最終用戶提供有用的信息。

這是 twenty fifteen主題的一個(gè)404.php模板文件的例子。

get_header(); ?>

<div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">
 
<section class="error-404 not-found">
 
<header class="page-header">
 
<h1 class="page-title"><?php _e( 'Oops! That page can’t be found.', 'twentyfifteen' ); ?></h1>
 
                </header>
 
<!-- .page-header -->
 
<div class="page-content">
 
<?php _e( 'It looks like nothing was found at this location. Maybe try a search?', 'twentyfifteen' ); ?>
 
                    <?php get_search_form(); ?>
                </div>
 
<!-- .page-content -->
            </section>
 
<!-- .error-404 -->
 
        </main><!-- .site-main -->
    </div>
 
<!-- .content-area -->
 
<?php get_footer(); ?>

Comments.php

comments.php是用來(lái)處理評(píng)論的模板文件。 這是一個(gè)部分模板,被引入到其他模板文件來(lái)顯示用戶在頁(yè)面或文章上留下的評(píng)論。 由于可能有多個(gè)頁(yè)面和文章需要評(píng)論,所以我們做成一個(gè)文件,方便我們進(jìn)行調(diào)用。

由于涉及的內(nèi)容有點(diǎn)多,所以我們創(chuàng)建了一個(gè)單獨(dú)的頁(yè)面來(lái)介紹它。

許多主題都利用側(cè)邊欄來(lái)顯示小工具。要使側(cè)邊欄在主題中起作用,必須先對(duì)其進(jìn)行注冊(cè),然后必須創(chuàng)建側(cè)邊欄的模板文件。您將在下一章中了解有關(guān)注冊(cè)側(cè)邊欄的更多信息。側(cè)邊欄文件通常具有條件語(yǔ)句,并且使用is_active_sidebar( 'sidebar-name' )來(lái)確保在側(cè)邊欄中使用小工具的功能,這樣就不必在頁(yè)面上不必要地添加空HTML。

這是twenty fifteen的側(cè)邊欄模板文件的例子。 注意底部的側(cè)邊欄是使用 <?php dynamic_sidebar( 'sidebar-1' ); > 引入的。 現(xiàn)在無(wú)論如何,插入該側(cè)邊欄的小工具將顯示在正在使用此模板的頁(yè)面上。

if ( has_nav_menu( 'primary' ) || has_nav_menu( 'social' ) || is_active_sidebar( 'sidebar-1' ) ) : >
  
<div id="secondary" class="secondary"> 
 
    <?php if ( is_active_sidebar( 'sidebar-1' ) ) : >
  
<div id="widget-area" class="widget-area" role="complementary">
            <?php dynamic_sidebar( 'sidebar-1' ); >
        </div>
 
    <!-- .widget-area -->
    <?php endif; >
  
</div>
 
<!-- .secondary -->
  
<?php endif; >

Content-{$slug}.php

許多主題開(kāi)發(fā)人員將其模板文件分成幾小塊。他們通常將包裝器和頁(yè)面架構(gòu)元素放在模板文件中,例如page.php, home.php, comments.php等等,然后將顯示這些頁(yè)面內(nèi)容的代碼放在另一個(gè)模板文件中。輸入content-{$slug}.php:常見(jiàn)示例為content-page.php, content-post.php, content-portfolio.php, content-none.php。這些不是WordPress可以識(shí)別并以某種方式解釋的文件名,而是顯示特定類(lèi)型內(nèi)容的常用方法。

例如,在博客文章上,您想要顯示作者的姓名,文章的日期以及文章的分類(lèi)。您還可能具有指向上一個(gè)和下一個(gè)文章的鏈接。該信息不適用于常規(guī)頁(yè)面。同樣,在作品集頁(yè)面上,您可能會(huì)想用和普通博文不一樣的方式顯示特色圖片或相冊(cè)。

您將要使用get_template_part()模板標(biāo)簽??來(lái)引入content-{$slug}.php文件。要引入您的content-page.php文件,您可以使用代碼get_template_part( 'content', 'page' );

以下是 twenty fifteen 主題中 content-page.php的代碼示例:

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <?php // Post thumbnail. 
    twentyfifteen_post_thumbnail(); ?>
 
<header class="entry-header">
        <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
    </header>
 
<!-- .entry-header -->
 
<div class="entry-content">
        <?php the_content(); ?>
        <?php wp_link_pages( array( 
                'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentyfifteen' ) . '</span>',
                'after'       => '</div>',
                'link_before' => '<span>',
                'link_after'  => '</span>',
                'pagelink'    => '<span class="screen-reader-text">' . __( 'Page', 'twentyfifteen' ) . ' </span>%',
                'separator'   => '<span class="screen-reader-text">, </span>',
            ) );
        ?>
    </div>
 
<!-- .entry-content -->
 
    <?php edit_post_link( __( 'Edit', 'twentyfifteen' ), '<footer class="entry-footer"><span class="edit-link">', '</span></footer><!-- .entry-footer -->' ); ?>
 
</article>
 
<!-- #post-## -->
這篇文章對(duì)您有用嗎?
0 條回復(fù) A文章作者 M管理員
    暫無(wú)討論,說(shuō)說(shuō)你的看法吧
?
個(gè)人中心
購(gòu)物車(chē)
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

江口县| 明溪县| 额济纳旗| 新余市| 临洮县| 疏勒县| 阿城市| 白银市| 普定县| 咸丰县| 修武县| 重庆市| 同心县| 金平| 公主岭市| 万全县| 普兰店市| 丰城市| 通城县| 隆回县| 日照市| 武强县| 武邑县| 察隅县| 丘北县| 通渭县| 日照市| 博乐市| 咸宁市| 石城县| 台安县| 巴林左旗| 涞水县| 阿瓦提县| 宝山区| 运城市| 布尔津县| 天水市| 孟州市| 喀喇沁旗| 大洼县|