WordPress 3.2 新テーマ twentyeleven の functions.php のコメントを日本語訳しています。
対象となるバージョンは、twentyeleven 1.2 です。fucntions.php 自体がかなり長いので、今回は、41行から310行です。機会があれば WordBench 等で紹介するかもしれません。
/**
* テーマデザインとスタイルシートに基づいてコンテンツ幅を設定する
*/
if ( ! isset( $content_width ) )
$content_width = 584;
/**
* 'after_setup_theme' フックで twentyeleven_setup() を実行するように WordPress に指示する
*/
add_action( 'after_setup_theme', 'twentyeleven_setup' );
if ( ! function_exists( 'twentyeleven_setup' ) ):
/**
* テーマのデフォルト設定、様々な WordPress 機能のサポートの登録
*
* この関数は after_setup_theme フックにフックしている。
* init フックより前に実行される。いくつかの機能、例えばアイキャッチ画像のサポート、は
* init フックでは遅すぎる。
*
* 小テーマで twentyeleven_setup() を上書きするには、小テーマの functions.php ファイルで
* 独自 twentyeleven_setup を定義する
*
* @uses load_theme_textdomain() 翻訳/ローカライズサポート
* @uses add_editor_style() ビジュアルエディタのスタイル
* @uses add_theme_support() アイキャッチ画像、自動フィードリンク、投稿フォーマットのサポート。
* @uses register_nav_menus() ナビゲーションメニューのサポート。
* @uses add_custom_background() カスタム背景のサポート。
* @uses add_custom_image_header() カスタムヘッダーのサポート。
* @uses register_default_headers() テーマ付属のデフォルトカスタムヘッダー画像の登録。
* @uses set_post_thumbnail_size() アイキャッチ画像のサイズ設定。
*
* @since Twenty Eleven 1.0
*/
function twentyeleven_setup() {
/* Twenty Eleven を翻訳可能にする。
* 翻訳は /languages/ ディレクトリに追加する。
* Twenty Eleven から小テーマを作成する場合、
* 全テンプレートファイルの 'twentyeleven' を、自分の作成したテーマ名に変更する。
*/
load_theme_textdomain( 'twentyeleven', TEMPLATEPATH . '/languages' );
$locale = get_locale();
$locale_file = TEMPLATEPATH . "/languages/$locale.php";
if ( is_readable( $locale_file ) )
require_once( $locale_file );
// テーマのスタイルにマッチするように、ビジュアルエディタで editor-style.css を適用する。
add_editor_style();
// テーマのオプションページと関連コードを読み込む
require( dirname( __FILE__ ) . '/inc/theme-options.php' );
// Twenty Eleven の短冊ウィジェット
require( dirname( __FILE__ ) . '/inc/widgets.php' );
// 投稿とコメントの RSS フィードリンクを <head> に追加する
add_theme_support( 'automatic-feed-links' );
// wp_nav_menu() を一カ所で使用
register_nav_menu( 'primary', __( 'Primary Menu', 'twentyeleven' ) );
// 様々な投稿フォーマットをサポート
add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote', 'image' ) );
// カスタム背景をサポート
add_custom_background();
// 投稿/固定ページのカスタム背景画像に、アイキャッチ画像(投稿サムネイル)を使用
add_theme_support( 'post-thumbnails' );
// ここから4つは Twenty Eleven のカスタムヘッダーを設定する
// ヘッダーのテキスト色のデフォルト
define( 'HEADER_TEXTCOLOR', '000' );
// 空白の場合、画像をランダム表示
define( 'HEADER_IMAGE', '' );
// カスタムヘッダーの高さと幅。
// twentyeleven_header_image_width と twentyeleven_header_image_height フィルターを使用して変更。
define( 'HEADER_IMAGE_WIDTH', apply_filters( 'twentyeleven_header_image_width', 1000 ) );
define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentyeleven_header_image_height', 288 ) );
// 投稿/固定ページのカスタムヘッダー画像にアイキャッチを使用。
// アイキャッチ画像を定義したヘッダー画像のサイズにしたい。
// 大きい画像は自動的に切り取り、小さい画像は無視する。header.php を参照。
set_post_thumbnail_size( HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true );
// Twenty Eleven カスタム画像のサイズを追加
add_image_size( 'large-feature', HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true ); // 大きいアイキャッチ画像(ヘッダー画像)
add_image_size( 'small-feature', 500, 300 ); // 大きい画像が存在しない場合はこちら
// ヘッダー画像のランダム表示をデフォルトで有効にする
add_theme_support( 'custom-header', array( 'random-default' => true ) );
// カスタムヘッダーを管理画面からスタイル可能にする
// twentyeleven_admin_header_style() を参照。
add_custom_image_header( 'twentyeleven_header_style', 'twentyeleven_admin_header_style', 'twentyeleven_admin_header_image' );
// ... ヘッダーの変更はここまで
// テーマ同梱のデフォルトのカスタムヘッダー画像。 %s は、テンプレートディレクトリ URI のプレースホルダ
register_default_headers( array(
'wheel' => array(
'url' => '%s/images/headers/wheel.jpg',
'thumbnail_url' => '%s/images/headers/wheel-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Wheel', 'twentyeleven' )
),
'shore' => array(
'url' => '%s/images/headers/shore.jpg',
'thumbnail_url' => '%s/images/headers/shore-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Shore', 'twentyeleven' )
),
'trolley' => array(
'url' => '%s/images/headers/trolley.jpg',
'thumbnail_url' => '%s/images/headers/trolley-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Trolley', 'twentyeleven' )
),
'pine-cone' => array(
'url' => '%s/images/headers/pine-cone.jpg',
'thumbnail_url' => '%s/images/headers/pine-cone-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Pine Cone', 'twentyeleven' )
),
'chessboard' => array(
'url' => '%s/images/headers/chessboard.jpg',
'thumbnail_url' => '%s/images/headers/chessboard-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Chessboard', 'twentyeleven' )
),
'lanterns' => array(
'url' => '%s/images/headers/lanterns.jpg',
'thumbnail_url' => '%s/images/headers/lanterns-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Lanterns', 'twentyeleven' )
),
'willow' => array(
'url' => '%s/images/headers/willow.jpg',
'thumbnail_url' => '%s/images/headers/willow-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Willow', 'twentyeleven' )
),
'hanoi' => array(
'url' => '%s/images/headers/hanoi.jpg',
'thumbnail_url' => '%s/images/headers/hanoi-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Hanoi Plant', 'twentyeleven' )
)
) );
}
endif; // twentyeleven_setup
if ( ! function_exists( 'twentyeleven_header_style' ) ) :
/**
* ブログに表示するヘッダー画像とテキストのスタイル
*
* @since Twenty Eleven 1.0
*/
function twentyeleven_header_style() {
// 文字列にカスタムオプションが設定されていない場合、
// get_header_textcolor() オプションを取り出す。デフォルトは HEADER_TEXTCOLOR。文字列を隠す ('blank') または任意の16進数
if ( HEADER_TEXTCOLOR == get_header_textcolor() )
return;
// ここに到達したら、カスタムスタイルがあるので、実行する。
?>
<style type="text/css">
<?php
// 文字列を隠す?
if ( 'blank' == get_header_textcolor() ) :
?>
#site-title,
#site-description {
position: absolute !important;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
<?php
// ユーザーが文字色を設定している場合、それを使用する
else :
?>
#site-title a,
#site-description {
color: #<?php echo get_header_textcolor(); ?> !important;
}
<?php endif; ?>
</style>
<?php
}
endif; // twentyeleven_header_style
if ( ! function_exists( 'twentyeleven_admin_header_style' ) ) :
/**
* 「外観」「ヘッダー」管理パネルで表示されるヘッダー画像のスタイル。
*
* twentyeleven_setup() にある add_custom_image_header() から参照
*
* @since Twenty Eleven 1.0
*/
function twentyeleven_admin_header_style() {
?>
<style type="text/css">
.appearance_page_custom-header #headimg {
border: none;
}
#headimg h1,
#desc {
font-family: "Helvetica Neue", Arial, Helvetica, "Nimbus Sans L", sans-serif;
}
#headimg h1 {
margin: 0;
}
#headimg h1 a {
font-size: 32px;
line-height: 36px;
text-decoration: none;
}
#desc {
font-size: 14px;
line-height: 23px;
padding: 0 0 3em;
}
<?php
// ユーザーが文字色を設定している場合、それを使用する
if ( get_header_textcolor() != HEADER_TEXTCOLOR ) :
?>
#site-title a,
#site-description {
color: #<?php echo get_header_textcolor(); ?>;
}
<?php endif; ?>
#headimg img {
max-width: 1000px;
height: auto;
width: 100%;
}
</style>
<?php
}
endif; // twentyeleven_admin_header_style
if ( ! function_exists( 'twentyeleven_admin_header_image' ) ) :
/**
* 「外観」「ヘッダー」管理パネルで表示されるヘッダー画像のマークアップ。
*
* twentyeleven_setup() にある add_custom_image_header() から参照
*
* @since Twenty Eleven 1.0
*/
function twentyeleven_admin_header_image() { ?>
<div id="headimg">
<?php
if ( 'blank' == get_theme_mod( 'header_textcolor', HEADER_TEXTCOLOR ) || '' == get_theme_mod( 'header_textcolor', HEADER_TEXTCOLOR ) )
$style = ' style="display:none;"';
else
$style = ' style="color:#' . get_theme_mod( 'header_textcolor', HEADER_TEXTCOLOR ) . ';"';
?>
<h1><a id="name"<?php echo $style; ?> onclick="return false;" href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
<div id="desc"<?php echo $style; ?>><?php bloginfo( 'description' ); ?></div>
<?php $header_image = get_header_image();
if ( ! empty( $header_image ) ) : ?>
<img src="<?php echo esc_url( $header_image ); ?>" alt="" />
<?php endif; ?>
</div>
<?php }
endif; // twentyeleven_admin_header_image
[…] 標準テーマ twentyeleven の functions.php では、twentyeleven_setup で add_theme_support […]
[…] twentyeleven の functions.phpに続き、今回は twentytwelve の functions.php のコメントを日本語化しました。 […]