WordPressのデフォルトテーマ、Twenty Seventeenをカスタマイズして使用する

カテゴリ: WP関連メモ
Twenty Seventeen

子テーマを mod-twentyseventeen として作成。
Twenty Seventeen からコピーしたファイルは
style.css
header.php
footer.php
page.php
single.php

header.php の変更

20・21行目を削除

footer.php の変更

ページ末尾の "Proudly powered by WordPress" を自サイトのコピーライトに変更。
footer.php 38行目をコメントアウト
その次の次の行に <div class="site-info">© 右側走行禁止</div> を追加。

page.php の変更

コメントフォームは使わないので、29行目から32行目をコメントアウト

single.php の変更

page.php同様、コメントフォームは使わないので、24行目から29行目をコメントアウト

style.css の変更

末尾にGoogle マップ用のCSSを追加
#map{width:100%;max-width:500px;height:500px;}
#elevation_chart{width:100%;max-width:500px;}

functions.php 新規作成

headタグ内をスッキリさせたいので、 WordPress4.8のwp_headで出力されるものを削除 でメモしたものを functions.php に追加してデフォルトのアクションフックを除去。

the_content() で出力されるものに<p>や<br />の自動挿入を止める為、
remove_filter("the_content", "wpautop");
を追加。

デフォルトテーマで wp_head に add_action されているピングバックを消したいので、
function remove_twentyseventeen_pingback_header(){
remove_action("wp_head", "twentyseventeen_pingback_header");
}
add_action("init", "remove_twentyseventeen_pingback_header");

投稿者名を削除するために、twentyseventeen_posted_on() を上書き。
function twentyseventeen_posted_on(){
echo "<span class=\"posted-on\">" . twentyseventeen_time_link() . "</span>";
}

最後に、meta・linkタグの追加

$canonical_url = null;

function add_meta_tag(){
global $page;
global $paged;
global $canonical_url;

$page_number = max($page, $paged);
$is_page_num = $page_number > 1;

$is_top_page = is_home() || is_front_page();
$is_category = is_category();
$is_singular = is_singular();

echo "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n";

$og_title = $is_top_page || $is_category ? get_bloginfo("name") : ($is_singular ? get_the_title() : null);
$og_title .= $is_category ? " – ".get_the_category()[0]->cat_name : "";
$og_title .= $og_title && $is_page_num ? " – {$page_number}ページ目" : "";
if($og_title) echo "<meta property=\"og:title\" content=\"{$og_title}\">\n";

$og_type = $is_top_page ? "blog" : ($is_singular || $is_category ? "article" : null);
if($og_type) echo "<meta property=\"og:type\" content=\"{$og_type}\">\n";

if($is_top_page) :
$canonical_url = home_url("/");
elseif($is_category) :
$canonical_url = get_category_link(get_query_var("cat"));
elseif($is_singular) :
$canonical_url = get_permalink();
endif;

if($canonical_url){
if($page > 1) $canonical_url .= "{$page}/";
if($paged > 1) $canonical_url .= "page/{$paged}/";

echo "<meta property=\"og:url\" content=\"{$canonical_url}\">\n";
}

if(has_post_thumbnail()){
$og_image = wp_get_attachment_image_src(get_post_thumbnail_id(), full);

echo <<< EOF
<meta property="og:image" content="{$og_image[0]}">
<meta property="og:image:width" content="{$og_image[1]}">
<meta property="og:image:height" content="{$og_image[2]}">

EOF;
}

$description = $is_singular ? get_the_excerpt() : null;
if($description) echo "<meta property=\"og:description\" content=\"{$description}\">\n";

echo "<meta property=\"og:site_name\" content=\"".get_bloginfo(‘name’)."\">\n";

?>
<meta property="og:locale" content="ja_JP">
<meta property="fb:app_id" content="***************">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@************">
<?php
if($description) echo "<meta name=\"description\" content=\"{$description}\">\n";
}
add_action("wp_head", "add_meta_tag", 1);

function add_link_tag(){
global $canonical_url;

if($canonical_url) echo "<link rel=\"canonical\" href=\"{$canonical_url}\">\n";
?>
<link rel="alternate" type="application/rss+xml" href="/feed/" title="RSS2.0">
<link rel="alternate" type="application/atom+xml" href="/feed/atom/" title="Atom">
<?php
}
add_action("wp_head", "add_link_tag", 1);