よく使うWordPressのテンプレートタグや条件分岐
毎回書き方を探すという無駄を省くためのメモ。
bodyにIDやclassを追加して、スタイルシートファイルを読ませる条件も追加。
bodyのコード
<body id="<?php echo $body_id; ?>" <?php body_class(); ?>>
bodyの上に追加するコード
<?php
//リセット
$body_id = "";
if ( is_home() || is_front_page() ) {
//homeかfrontpageのときは
$body_id = "top";
?>
<link href="<?php bloginfo('template_url') ?>/common/css/swiper.min.css" rel="stylesheet" media="all">
<link href="<?php bloginfo('template_url') ?>/common/css/top.css" rel="stylesheet" media="all">
<?php
//カスタム投稿newsreleasか、固定ページスラッグnewsか、カスタム投稿newsreleasの詳細ページのときは
} else if ( get_post_type() == "newsreleas" || is_page( 'news' ) || is_singular( 'newsreleas' ) ) {
$body_id = "news";
//記事の詳細ページのときは
if ( is_single() ) {
//bodyのclassにsingleを追加
$body_class = "single";
?>
<link href="<?php bloginfo('template_url') ?>/common/css/post-content.css" rel="stylesheet" media="all">
<?php } ?>
<link href="<?php bloginfo('template_url') ?>/common/css/news.css" rel="stylesheet" media="all">
<?php
//投稿か、固定ページスラッグblogのときは
} else if ( get_post_type() == "post" || is_page( 'blog' ) ) {
//bodyのIDのblogを追加
$body_id = "blog";
?>
<link href="<?php bloginfo('template_url') ?>/common/css/blog.css" rel="stylesheet" media="all">
//記事の詳細ページのときは
<?php if(is_single()){ ?>
<link href="<?php bloginfo('template_url') ?>/common/css/post-content.css" rel="stylesheet" media="all">
<?php
}
}
?>
条件分岐タグ
特定のページにだけ表示したい要素がある場合
if ( is_front_page() && is_home() ) {// home.phpで作成、または、管理画面の設定の表示設定で固定ページをトップページにした場合
//ここにトップページにだけ表示したい内容
} elseif ( is_page() ) {// 固定ページ
//ここに固定ページにだけ表示したい内容
} elseif ( is_single() ) {// 投稿
//ここに投稿にだけ表示したい内容
} else {// それ以外
//ここにそれ以外のページで表示したい内容
}
特定のページから表示を除外したい場合
if ( !is_page('contact') ) {}
表示する条件から除外したいページが複数ある場合
if ( !( is_home() || is_front_page() || is_page('231') || is_page('183') ) ){}
複数の条件を繋ぐ場合
- || どちらかが真の場合に適用
- && どちらも真の場合に適用
- and どちらも真の場合に適用
テンプレートタグ
phpファイルの読み込み
header.php
<?php get_header(); ?>
footer.php
<?php get_footer(); ?>
sidebar.php
<?php get_sidebar(); ?>
検索フォーム
<?php get_search_form(); ?>
コメント
<?php comments_template(); ?>
オリジナルphp (優先順は下記)
wp-content/themes/twentytenchild/loop-index.php
wp-content/themes/twentyten/loop-index.php
wp-content/themes/twentytenchild/loop.php
wp-content/themes/twentyten/loop.php
<?php get_template_part( 'loop', 'index' ); ?>
サブディレクトリありオリジナルphp (例)wp-content/themes/partials/content-page.php
<?php get_template_part( 'partials/content', 'page' ); ?>
METAタイトルの出力
functions.phpに下記を追加。ウェブページ側に表示されないときは、header.phpに<?php wp_head(); ?>の記述があるか確認。なければ追加。
//meta titleを追加
add_theme_support( 'title-tag' );
//meta titleの区切りを線にする
function title_sep( $sep ) {
return '|';
}
add_filter( 'document_title_separator', 'title_sep' );
パーマリンク
<?php the_permalink();?>
日付
例 2019/12/30
<?php the_time('Y/m/d');?>
投稿タイトル
<?php the_title();?>
投稿本文
<?php the_content();?>
ブログのタイトル
<?php bloginfo('name'); ?>
ブログのURL
<?php echo esc_url( home_url( '/' ) ); ?>
WordPressのアドレス(URL)
<?php echo site_url(); ?>
ディスクリプション
<?php bloginfo('description'); ?>
テーマディレクトリのCSSファイルパス
親テーマ
<?php echo get_stylesheet_uri(); ?>
子テーマ
<?php echo get_stylesheet_directory_uri(); ?>
テーマディレクトリのURL
<?php echo get_template_directory_uri(); ?>
アクション
header.phpなどの</head>のタグ直前に
<?php wp_head(); ?>
footer.phpなどの</body>のタグ直前に
<?php wp_footer(); ?>
テンプレートタグ – WordPress Codex 日本語版
http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0