WordPress講座

WordPress講座

WordPressサイト

オフィシャル

WordPress 日本語

http://ja.wordpress.org/

ショーケース

TechCrunch Japan

http://jp.techcrunch.com/

100SHIKI ~ 世界のアイデアを日替わりで

http://www.100shiki.com/
 

インストール

WordPress | 日本語 >> インストール

http://ja.wordpress.org/install/

  • wp- config.php
// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のデータベース名 */
define('DB_NAME', 'tatenosystem');

/** MySQL のユーザー名 */
define('DB_USER', 'tatenosystem');

/** MySQL のパスワード */
define('DB_PASSWORD', 'XXXXXXX');

/** MySQL のホスト名 (ほとんどの場合変更する必要はありません。) */
define('DB_HOST', 'localhost');
  • 1つのデータベースに複数のWordPressを入れたい
/**
 * WordPress データベーステーブルの接頭辞
 *
 * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
 * インストールすることができます。半角英数字と下線のみを使用してください。
 */
$table_prefix  = 'wp_';

テーマフォルダ

WordPress3 標準テーマ「twentyten」

  • /home/navilog/public_html/wp- content/themes/twentyten/


 

「ナビログ」テーマ

  • /home/navilog/public_html/wp- content/themes/navilog/


 

いろいろなテーマ

Free Themes Directory

http://wordpress.org/extend/themes/

WordPress日本語テーマ無料配布サイト1200以上紹介

http://wordpress.siyouyo.com/theme/1597/
 

テンプレートファイル

テンプレート階層(チェック順序)

http://wpdocs.sourceforge.jp/テンプレート階層
 

最少構成の WordPress テーマ

最小構成は2ファイルです。

  • style.css
  • index.php

※ screenshot.png という300x225の画像ファイルがあると、管理画面でテーマのプレビュー画面として使用されます。

style.css サンプル

@charset "utf-8";
/*
Theme Name: TEST
Theme URI: http://hogehoge/
Description: Very simple Test Theme.
Version: 0.0
Author: Your Name
Author URI: http://hogehoge/
*/

body {
	line-height: 1;
}
h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
	clear: both;
}

index.php サンプル

<?php while ( have_posts() ) : the_post(); ?>
  
  <h2><?php the_title(); ?></h2>
  
  <div class="entry-content">
  <?php the_content(); ?>
  </div>
  
<?php endwhile; ?>

 

テンプレートファイル チェック順序


サイト構築の例

 

デフォルトのテーマを見てみよう(twentytenテーマの一部)

  • twentytenテーマ

http://2010dev.wordpress.com/

index.php

<?php
get_header(); ?>

<div id="container">
  <div id="content" role="main">
  
  <?php
    get_template_part( 'loop', 'index' );
  ?>
  </div>
</div>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

 

関数リファレンス/get template part

http://wpdocs.sourceforge.jp/関数リファレンス/get_template_part
 

loop.php (一部)

<?php while ( have_posts() ) : the_post(); ?>
  
  <h2 class="entry-title"><?php the_title(); ?></h2>
  
  <div class="entry-content">
  <?php the_content(); ?>
  </div>
  
<?php endwhile; // End the loop. Whew. ?>


<?php if (  $wp_query->max_num_pages > 1 ) : ?>
  <div id="nav-below" class="navigation">
    <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentyten' ) ); ?></div>
    <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?></div>
  </div>
<?php endif; ?>

 

Word Press Loop

http://wpdocs.sourceforge.jp/The_Loop
 

WordPress チートシート

テンプレートファイル

FILE 説明
header.php ヘッダー部分
index.php メイン部分
sidebar.php サイドバー部分
footer.php フッター部分
single.php 投稿記事のテンプレート
page.php ページのテンプレート
comments.php コメントのテンプレート
search.php 検索結果のテンプレート
searchform.php 検索フォームのテンプレート
archive.php アーカイブのテンプレート
functions.php オプションの関数ファイル
404.php エラーページのテンプレート
style.css スタイルシート

テンプレートタグ

TAG 説明
<?php the_time(); ?> 現在の記事の投稿時間を表示
<?php the_date(); ?> 現在の記事の投稿日時を表示
<?php the_title(); ?> 現在の記事のタイトルを表示
<?php the_content(); ?> 現在の記事の本文を表示
<?php the_permalink(); ?> 現在の記事のパーマリンクURLを表示
<?php the_category(); ?> 記事のカテゴリーをリンク付きで表示
<?php the_author(); ?> 現在の記事の著者名を表示
<?php the_tags(); ?> 現在の記事のタグを表示
<?php the_ID(); ?> 現在の記事の記事IDを表示
<?php wp_list_pages(); ?> リンク付きページ一覧を表示/取得
<?php wp_list_categories(); ?> リンク付きカテゴリ一覧を表示/取得
<?php posts_nav_link(); ?> 前後のページへのリンクを表示
<?php next_post_link(); ?> 記事ページで次の記事へのリンクを表示
<?php previous_post_link(); ?> 記事ページで前の記事へのリンクを表示
<?php the_search_query();?> 検索文字列を表示
<?php trackback_url(display); ?> トラックバックURIを表示/取得
<?php wp_tag_cloud(); ?> タグクラウドを表示
<?php get_calendar(); ?> カレンダーを表示
<?php wp_get_archives(); ?> リンク付きアーカイブリストを表示

テンプレートタグ / bloginfo

TAG 説明
<?php bloginfo('name'); ?> ブログのタイトル
<?php bloginfo('description'); ?> ブログの説明文
<?php bloginfo('url'); ?> サイトURL
<?php bloginfo('stylesheet_url'); ?> メインCSSファイルのURL
<?php bloginfo('template_url'); ?> テーマファイルディレクトリのURL
<?php bloginfo('rss2_url'); ?> RSS 2.0 形式のメインフィードURL
<?php bloginfo('charset'); ?> 「表示設定」で指定された文字コード
<?php bloginfo('version'); ?> 現在使用中のWordPressのバージョン
<?php bloginfo('html_type'); ?> “Content-type”の設定値

インクルードタグ

TAG 説明
<?php get_header(); ?> header.phpを読み込む
<?php get_sidebar(); ?> sidebar.phpを読み込む
<?php get_footer(); ?> footer.phpを読み込む
<?php comments_template(); ?> comments.phpを読み込む
<?php get_search_form(); ?> 検索フォームを読み込む
<?php include( TEMPLATEPATH . '/header2.php' ); ?> その他のファイルを読み込む

条件分岐タグ

TAG 説明
<?php if (is_home()): ?> - <?php endif; ?> メインブログページが表示されている場合
<?php if (is_front_page()): ?> - <?php endif; ?> サイトのフロントページが表示されている場合
<?php if (is_single()): ?> - <?php endif; ?> 個別記事のページが表示されている場合
<?php if (is_page()): ?> - <?php endif; ?> ページが表示されている場合
<?php if (is_category()): ?> - <?php endif; ?> あるカテゴリーのアーカイブページが表示されている場合

ループ

<?php if (have_posts()) : ?>
 <?php while (have_posts()) : the_post(); ?>
  コンテンツを表示
 <?php endwhile; ?><?php else : ?>
  コンテンツがない時の表示
<?php endif; ?>

ナビゲーションメニュー

  • カテゴリーを基準としたナビゲーションメニューの例
<ul id="nav">
 <li <?php if(is_home()): ?> class="current-cat"<?php endif; ?>>
  <a href="<?php bloginfo('home'); ?>">Home</a>
 </li>
 <?php wp_list_categories('title_li=&orderby=id'); ?>
</ul>
  • ページを基準としたナビゲーションメニューの例
<ul id="nav">
 <li <?php if(is_home()): ?> class="current_page_item"<?php endif; ?>>
  <a href="<?php bloginfo('home'); ?>">home</a>
 </li>
 <?php wp_list_pages('sort_column=menu_order&depth=1&title_li='); ?>
</ul>

 

Tips

  • 記事ループの特定の部分にコンテンツ追加
<?php if ( $wp_query->current_post === 2 ) : ?>
  <p>広告HTML等</p>
<?php endif; ?>

 

WordPress Codex リファレンス

テーマの作成・テンプレートファイル名

http://wpdocs.sourceforge.jp/テーマの作成

テンプレート階層

http://wpdocs.sourceforge.jp/テンプレート階層#

テンプレートタグ(PHP関数)

http://wpdocs.sourceforge.jp/テンプレートタグ

条件分岐タグ

http://wpdocs.sourceforge.jp/Conditional_Tags

インクルードタグ

http://wpdocs.sourceforge.jp/インクルードタグ

関数リファレンス

http://wpdocs.sourceforge.jp/関数リファレンス

DB テーブル・項目一覧

http://wpdocs.sourceforge.jp/データベース概要

 

PHP template

if 構文

<?php if (isset($hoge)): ?>
 // HTML
<?php else: ?>
 // HTML
<?php endif; ?>

foreach 構文

<?php foreach ($names as $name): ?>
 // HTML
<?php endforeach; ?>

for 構文

<?php for ($i = 0; $i<10; $i++): ?>
 // HTML
<?php endfor; ?>

while 構文

 <?php while ($num < $maxNum): ?>
   // HTML
 <?php endwhile; ?>

 

リンク

日本語版 WordPress チートシート | Webクリエイターボックス

http://www.webcreatorbox.com/tech/japanese-wordpress-cheat-sheet/

Wordpress オリジナルテーマの作り方 | Webクリエイターボックス

http://www.webcreatorbox.com/tech/wordpress-original-theme/

WordPressにプラグイン無しでページネーションを設置する方法

http://coliss.com/articles/blog/wordpress/how-to-build-a-wordpress-post-pagination-without-plugin.html

WordPressのテーマファイルの仕組みが一目で分かる -The anatomy of a WordPress theme

http://coliss.com/articles/blog/wordpress/wordpress-theme-anatomy-by-yoast.html

WordPressを100倍速くする! MySQLの調整やnginx proxy cache

http://kray.jp/blog/wordpress-tuning/

 


セキュリティ

.htaccess /wp-admin/ フォルダ

authkey の部分には Cookie でセットした値を設定

SetEnvIf Cookie auth=\x22?authkey\x22? site_access_allow
Order deny,allow
Deny from all
Allow from env=site_access_allow

Cooke セット(PHP)

setcookie('auth', 'authkey', time()+(3600*24*365*2), '/wp-admin/'); // 2years
setcookie('auth', 'authkey', time()+(3600*24*365*2), '/', 'domain.com'); // 2years