ZEROのメモ

システム手帳とブログのコラボ

Snippet

本ブログで採用しているテーマ「Frontier」の「子テーマ」で採用している「Snippet」に関するメモです。いわゆる「functions.php」で記述しているコードに関する内容です。そもそも「Snippet」とは・・・

スニペットとは、一般的には「切れ端」「断片」という意味の英語である。IT用語としては、プログラミング言語の中で簡単に切り貼りして再利用できる部分のこと、または、検索エンジンによる検索結果の一部として表示される、Webページの要約文のことである。出典:「スニペットとは – IT用語辞典 Weblio辞書」より

素晴らしい「Snippet」がネット上に公開されていますから、自分に合った「Snippet」を選定して記述していけばいいと思います。

はじめに

「Frontier」の「子テーマ」で標準で準備されている functions.php には、たったの 2 行が記載されているだけです。

<?php
// Your code goes here.

ただ、最初の 1 行目がないと機能しなくなるので注意が必要です。独自のコードは、「//Your code …」を消去して、記載して行くことになります。

本ページで記載されている「Snippet」は、WordPress 4.7 以降にて実践しています。「Snippet」によっては、WordPress のバージョンによって機能しないこともあるようですので、注意する必要がありそうです。

何はともあれ「子テーマ」に必要と考えている Snippet

WordPress を始めると、色々と不都合があったりして・・・私個人として、これまでの経験から「必要最低限必要」と考えている機能をメモしておきます。

Style を @import を利用せずに読み込む

WordPress では、style.css において「@import」を利用しないように推奨しているそうです。即ち、「functions.php」で「子テーマ」の style.css を読み込むように設定すること。以下のコードで実現できます。

/*---------------------------------------
Style を @import を利用せずに読み込む
参考サイト:http://delaymania.com/201504/wordpress/wordpress-child-css-import/
-----------------------------------------*/
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}

セルフピンバックを禁止する

WordPress の標準機能として、同じブログ内の投稿記事とリンクを張るとピンバックが飛ぶようになっているそうです。好き嫌いがあるでしょうけど、私は同じサイト内でピンバックが飛ぶのは許しがたいので、「セルフピンバックを禁止する」ように設定しています。

/* ----------------------------------------
セルフピンバックを禁止する
参照サイト:http://webdesignrecipes.com/wordpress-customize-with-functions-php/
------------------------------------------- */
function no_self_ping( &$links ) {
	$home = get_option( 'home' );
		foreach ( $links as $l => $link )
	if ( 0 === strpos( $link, $home ) )
	unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );

訪問して下さる方々のためのコード

運営している私が勝手に「訪問者のために・・・」と考えている機能を実現するためのコードです。スタイルを変更したり、コメントを簡単に記述できるようにしたり・・・もし私個人が他のブログを訪問した時に「便利だろうな~」と考える機能をメモします(実装しています)。

抜粋表示させる文字数を変更する

本ブログのホームページは、「抜粋記事」をリストさせるような設定になっています。標準だとちょっと抜粋部分が小さすぎるかな~って感じているので、「Twitter」でお馴染みの 140 文字表示に変更しています。

/*---------------------------------------
抜粋表示させる文字数を変更
参考サイト:http://awd-web.com/wordpress_log/1595
-----------------------------------------*/
function new_excerpt_mblength($length) {
     return 140;
}
add_filter('excerpt_mblength', 'new_excerpt_mblength');

概要(抜粋)の省略文字を変更する

上記と関連して、投稿記事の概要(抜萃)部分の最後に「・・・」が表示されますが、その記号!?を変更数する方法です。本ブログでは「(…..続く)」という表記に変更しています。

/*---------------------------------------
概要(抜粋)の省略文字を変更する
参考サイト:http://whitebear-seo.com/wordpress-excerpt-change/
-----------------------------------------*/
function my_excerpt_more($more) {
	return '(.....続く)';
}
add_filter('excerpt_more', 'my_excerpt_more');

テーマ「Frontier」の英語表記部分を日本語表記に変更する

テーマ「Frontier」は、かなり使い易く個人的にもお気に入りのテーマなのですが、ちょっとしたところで英語表記が残っていて気になったのですが、開発者のブログでも英語表記がされてしまうことが指摘されていて、その翻訳のための方法も示されています(流石です!)。

/*---------------------------------------
Frontier の英語表記を日本語表記へ変更
参考サイト:http://ronangelo.com/change-or-translate-text-on-a-wordpress-theme/
-----------------------------------------*/
function change_translate_text( $translated ) {
	$text = array(
		'Comments' => 'コメント',
		'Read Post' => '投稿記事を読む',
		'Previous Post' => '前の投稿記事へ',
		'Next Post' => '次の投稿記事へ',
		'Updated' => '更新日',
		'Older Posts' => '以前の投稿記事リストへ',
		'Newer Posts' => 'より最新の投稿記事リストへ',
	);
	$translated = str_ireplace(  array_keys($text),  $text,  $translated );
	return $translated;
}
add_filter( 'gettext', 'change_translate_text', 20 );

コメントフォームのカスタマイズ

本ブログの趣旨「自分用のブログ」から、コメントフォームをどうするかを試行錯誤しているのですが、やっぱり公開するんであれば、コメントフォームは残しておきたい!ただ、フォームにある余計な記入欄と考えている部分(ウェブサイトとかメールアドレスとか・・・)を削除して、シンプルにコードネームとコメントそのものだけを記入できるフォームにしました。

/*---------------------------------------
コメントフォームのカスタマイズ
-----------------------------------------*/
// ウェブサイトとメールアドレス欄を削除
// 参考サイト:http://inosh.jp/wordpress-comment-website-mail-delete/
add_filter('comment_form_default_fields', 'mytheme_remove_url');
function mytheme_remove_url($arg) {
	$arg['url'] = '';
	$arg['email'] = '';
	return $arg;
}
//「メールアドレスが公開されることはありません。」などといった表示を削除
// 参考サイト:http://inosh.jp/wordpress-comment-website-mail-delete/
add_filter( "comment_form_defaults", "my_comment_notes_before");
function my_comment_notes_before( $defaults){
	$defaults['comment_notes_before'] = '';
	return $defaults;
}
//「コメントを残す」の文言を変更
// 参考サイト:http://kwski.net/wordpress/804/
add_filter( 'comment_form_defaults', 'my_title_reply');
function my_title_reply( $defaults){
	$defaults['title_reply'] = '気楽にコメントして頂けますように!コメントは承認後の公開です。';
	return $defaults;
}

タグクラウドのフォーマットをカスタマイズ

カテゴリーとタグは、本ブログの生命線と勝手に考えています。どうやって分類するかということは勿論だし、より見易いフォーマットにすることも重要だと考えています。そこで、特にタグクラウドの見せ方にひと工夫。

/*---------------------------------------
WordPressタグクラウドのパラメータ変更
参考サイト:http://wp.kikuchisan.net/wordpress_tagcloud.html#functionsphp
---------------------------------------*/
function my_tag_cloud_filter($args) {
	$myargs = array(
		'smallest' => 10,   // 最小文字サイズは 10pt
		'largest' => 16,   // 最大文字サイズは 16pt
		'number' => 50,    // 一度に表示するのは50タグまで
		'orderby' => 'count', // タグが多い順
		'order' => 'DESC', // 表示順は降順
	);
	//元の配列 $args とカスタマイズ後の配列 $myargs をマージ
	$args = wp_parse_args($args, $myargs);
	return $args; //元の配列を返す
}
add_filter('widget_tag_cloud_args', 'my_tag_cloud_filter');

ブログ管理者向けのコード

管理者、即ち自分自身ですが・・・もうちょっと使い易いくなったりしたらいいな~なんてことが良くあります。人それぞれなんでしょうけど・・・例えば、投稿記事を書こうとすると、標準の管理画面では、文字が小さ過ぎたりして。そんな管理画面の変更が多いのですが、ネット上には素晴らしいコードが溢れています。

投稿テキストエディターのフォントを変更する

利用しているブラウザーによっても違うのでしょうけど・・・私の場合は「Google Chrome」を利用していますが、投稿記事を書こうとすると文字が小さいし、フォントが細くてなかなかタフです。そこで、自分の好みのフォントの種類と大きさに変更します。

/* ----------------------------------------
投稿テキストエディターのフォントを変更
参考サイト:http://www.1010uzu.com/boyaki/2012/04/change-wordpress-editor-font
------------------------------------------- */
function change_editor_font(){
echo "";
}
add_action("admin_print_styles", "change_editor_font");

投稿エディタにオリジナルボタンを追加する

WordPress における投稿エディタには、標準でいくつかのタグ用ボタンがありますが、本ブログで多用している table 関連のタグや引用符に関するボタンはありません。そこで、そうしたボタンを追加します。どうやらプラグインもあるようですが、本ブログでは functions.php で処理します。

/* ----------------------------------------
投稿記事エディタにオリジナルボタンを追加する
参考サイト:http://rikumalog.com/2012/07/wordpress/addquicktag-qui/
------------------------------------------- */
function add_my_quicktag() {
?>
<script type="text/javascript">
QTags.addButton('zero_CODE', 'CODE', '<pre><code>', '</code></pre>');
QTags.addButton('zero_TABLE', 'TABLE', '<table>', '</table>');
QTags.addButton('zero_CAPTION', 'CAPTION', '<caption>', '</caption>');
QTags.addButton('zero_TR', 'TR', '<tr>', '</tr>');
QTags.addButton('zero_TH', 'TH', '<th>', '</th>');
QTags.addButton('zero_TD', 'TD', '<td>', '</td>');
QTags.addButton('zero_TD-DATA', 'TD-DATA', '<td class="data">', '</td>');
QTags.addButton('zero_H3', 'H3', '<h3 class="subtitle">', '</h3>');
QTags.addButton('zero_H4', 'H4', '<h4 class="subtitle">', '</h4>');
QTags.addButton('zero_CITE', 'CITE', '<cite>', '</cite>');
</script>
<?php }
add_action('admin_print_footer_scripts',  'add_my_quicktag');

更新日: 2017年05月08日 — 20:56
Zeroのメモ © 2017 by Zero Cool. All Rights Reserved. Frontier Theme