2012年11月18日日曜日

wordpres の index.html

wordpress のオリジナルテーマ作成の下調べとして index.html の中身を見てみよう。



<?php
/**
 * The main template file.
 *
 * This is the most generic template file in a WordPress theme
 * and one of the two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * E.g., it puts together the home page when no home.php file exists.
 * Learn more: http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Eleven
 */
get_header(); ?>
    <div id="primary">
      <div id="content" role="main">
      <?php if (have_posts()) : ?>
        <?php twentyeleven_content_nav('nav-above'); ?>
        <?php /* Start the Loop */ ?>
        <?php while(have_posts()) : the_post(); ?>
          <?php get_template_part('content',get_post_format()); ?>
        <?php endwhile; ?>
        <?php twentyeleven_content_nav('nav-below'); ?>
      <?php else : ?>
        <article id="post-0" class="post no-results not-found">
          <header class="entry-header">
            <h1 class="entry-title"><?php _e('Nothing Found','twentyeleven'); ?></h1>
          </header><!-- .entry-header -->
          <div class="entry-content">
            <p><?php _e('Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.','twentyeleven'); ?></p>
            <?php get_search_form(); ?>
          </div><!-- .entry-content -->
        </article><!-- #post-0 -->
      <?php endif; ?>
      </div><!-- #content -->
    </div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
  • get_header() ってなんだ?
    「このタグは、現在のテーマディレクトリから header.php ファイルを読み込みます。このファイルがないときは、wp-content/themes/default/header.php を読み込みます。」だそうです。 (wordpress codex 日本語版より)  内容についてはソースが長そうなので次に回そう。初期画面のカバー写真より上を作っているのだろう。。

  • have_posts() ってなんだ?
    「(ループ内か、ループの前でのみ使用可能) 表示する投稿が残っているかを示す。」だそうです。

  • if(): endif/while(): 〜 endwhile ってなんだ?
    PHPはPerlと同じで "if() {}"、"while() {}" のように記載するものとばかり思っていたので、最初 endif や endwhile を見た時は、wordpress の拡張機能かと思った。でも PHP は別構文が用意されているんですね。知らなかった。

  • twentyeleven_content_nav() ってなんだ?
    function twentyeleven_content_nav( $nav_id ) {
      global $wp_query;
      if ( $wp_query->max_num_pages > 1 ) : ?>
        <nav id="<?php echo $nav_id; ?>">
          <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>
          <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyeleven' ) ); ?></div>
          <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyeleven' ) ); ?></div>
        </nav><!-- #nav-above -->
      <?php endif;
    }
    
    投稿記事が複数ページに渡る場合に、前ページ、次ページの案内を出す部分みたいだな。。
  • get_template_part() ってなんだ?
  • 「(ヘッダー、サイドバー、フッター以外の)テンプレートパーツをテンプレートに読み込みます。子テーマ で多重定義して簡単にセクションを再利用できます。テーマのその名前のテンプレートパーツをインクルードします。name を指定した場合は、特定の部分をインクルードします。{slug}.php ファイルが無い場合は、インクルードしません。 パラメータに関しては、"{slug}-{name}.php" を呼び出します。 」(参照) か。

  • _e() ってなんだ?
    メッセージの国際化対応関数なんですね。(参照)

  • <article> はなんだ?
    「<article>タグは、内容が単体で完結するセクションであることを示す際に使用します。例えば、フォーラムでの投稿、雑誌や新聞の記事、ブログのエントリ、コメントなどです。」(参照) か。コメントとか引用とかにつかうのかな。ここも参照かな。

  • get_search_from() ってなんだ?
    「テーマの searchform.php を使用して検索フォームを表示します。テーマに searchform.php が無い場合は、WordPress はビルトインの検索フォームを表示します。」 (wordpress codex 日本語版より)  か。。
    <?php
    /**
     * The template for displaying search forms in Twenty Eleven
     *
     * @package WordPress
     * @subpackage Twenty_Eleven
     * @since Twenty Eleven 1.0
     */
    ?>
      <form method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>">
        <label for="s" class="assistive-text"><?php _e('Search', 'twentyeleven'); ?></label>
        <input type="text" class="field" name="s" id="s" placeholder="<?php esc_attr_e('Search', 'twentyeleven'); ?>" />
        <input type="submit" class="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e('Search', 'twentyeleven'); ?>" />
      </form>
    

  • get_sidebar() ってなんだ?
    「このタグは、現在のテーマディレクトリから sidebar.php ファイルを読み込みます。このファイルが無いときは、wp-content/themes/default/sidebar.php を読み込みます。」 (wordpress codex 日本語版より)  か。。
    <?php
    /**
     * The Sidebar containing the main widget area.
     *
     * @package WordPress
     * @subpackage Twenty_Eleven
     * @since Twenty Eleven 1.0
     */
    
    $options = twentyeleven_get_theme_options();
    $current_layout = $options['theme_layout'];
    
    if ('content' != $current_layout) :
    ?>
        <div id="secondary" class="widget-area" role="complementary">
          <?php if (! dynamic_sidebar('sidebar-1')) : ?>
    
            <aside id="archives" class="widget">
              <h3 class="widget-title"><?php _e('Archives', 'twentyeleven'); ?></h3>
              <ul>
                <?php wp_get_archives(array('type' => 'monthly')); ?>
              </ul>
            </aside>
    
            <aside id="meta" class="widget">
              <h3 class="widget-title"><?php _e('Meta', 'twentyeleven'); ?></h3>
              <ul>
                <?php wp_register(); ?>
                <li><?php wp_loginout(); ?></li>
                <?php wp_meta(); ?>
              </ul>
            </aside>
    
          <?php endif; // end sidebar widget area ?>
        </div><!-- #secondary .widget-area -->
    <?php endif; ?>
    

  • get_footer ってなんだ?
    「このタグは、現在のテーマディレクトリから footer.php ファイルを読み込みます。このファイルが無いときは、 wp-content/themes/default/footer.php を読み込みます。 」 (wordpress codex 日本語版より)  か。。
    <?php
    /**
     * The template for displaying the footer.
     *
     * Contains the closing of the id=main div and all content after
     *
     * @package WordPress
     * @subpackage Twenty_Eleven
     * @since Twenty Eleven 1.0
     */
    ?>
      </div><!-- #main -->
      <footer id="colophon" role="contentinfo">
          <?php
            /* A sidebar in the footer? Yep. You can can customize
             * your footer with three columns of widgets.
             */
            if (! is_404())
              get_sidebar('footer');
          ?>
          <div id="site-generator">
            <?php do_action('twentyeleven_credits'); ?>
            <a href="<?php echo esc_url(__('http://wordpress.org/', 'twentyeleven')); ?>" title="<?php esc_attr_e('Semantic Personal Publishing Platform', 'twentyeleven'); ?>" rel="generator"><?php printf(__('Proudly powered by %s', 'twentyeleven'), 'WordPress'); ?></a>
          </div>
      </footer><!-- #colophon -->
    </div><!-- #page -->
    <?php wp_footer(); ?>
    </body>
    </html>
    

0 件のコメント:

コメントを投稿