WordPress(ワードプレス)では、テーマのための関数「functions.php」が用意されています。
ここにコードを記述することで、プラグインを使用しなくても同様の機能を実装することができたり、上級者の方なら高機能な機能を実装することができたりと便利なものです。
初心者の私が学んだ便利でおすすめなコードをまとめています。
新しいことを覚えたときに随時追記していきたいと思います。
おすすめ便利機能
ショートコードの作成
ショートコードとは、ユーザーがあらかじめ作成したプログラムを記事内などに呼び出すことができる機能です。
⇒ ショートコードとは何かを簡単にまとめています
⇒ 基本的な作成方法をまとめています
コード挿入
CSSの読込み、アナリティクスコードの挿入、webフォントの読込みなどヘッダーやフッターにコードを挿入したいことがあります。
テーマによってはコードを挿入する欄が設けられていることがありますが、LION BLOG(ライオンブログ)では、ヘッダーやフッターにコードを挿入してくれる欄が用意されていません。
function.phpに記述することで、コードを挿入することが可能です。
(当ブログでは、プラグイン「Simple Custom CSS and JS」を使用しています。簡単にコードが挿入できるので便利です。)
ヘッダーにコードを挿入
指定したコードが<head>~</head>内に出力されます。
function insert_head_code() {
//挿入するコード内容
例:<script type='text/javascript' src='http://〇〇.com/jquery.js'></script>
}
add_action('wp_head', 'insert_head_code');
フッターにコードを挿入
指定したコードが<footer>~</footer>内に出力されます。
function insert_footer_code() {
//挿入するコード内容
例:<script type='text/javascript' src='http://〇〇.com/jquery.js'></script>
}
add_action('wp_footer', 'insert_footer_code');
ワードプレス機能拡張
ウィジェット内でショートコード使用可能に
デフォルトでは、ウィジェット内でショートコードを使用することはできません。
カスタマイズして作った便利なショートコードをテキストウィジェット内でも使用できるようにします。
/*ウィジェット内でショートコード使用可能に*/
add_filter('widget_text', 'do_shortcode' );
セキュリティ向上
コメント欄でのHTMLタグ禁止
コメント欄にURLを記入されると、Wordpressのオートリンク機能で「aタグ」が自動付加された状態になってしまいます。
その他、手動で「aタグ」を記入されるとリンクを貼ることができてしまいます。
これによって悪意のあるサイトへのリンクを貼られてしまう可能性があります。
これを防ぐために、「オートリンクの無効化」と「HTMLタグのエスケープ化」をします。
(コードはトリコロールな猫さんの記事 から引用したものにオートリンク無効化を追加しています。)
/*コメント欄にHTMLタグエスケープ*/
function html_to_text($comment_content) {
if ( get_comment_type() == 'comment' ) {
$comment_content = htmlspecialchars($comment_content, ENT_QUOTES);
}
return $comment_content;
}
add_filter('comment_text', 'html_to_text', 9);
/*オートリンク無効*/
remove_filter('comment_text', 'make_clickable', 9);
WordPressのバージョンを非表示
デフォルトでは、ページのソースを表示すると、「<meta name=”generator” content=”WordPress 4.9.1″ />」のようにワードプレスのバージョンが表示されています。
悪意のある人にワードプレスのバージョンを知られてしまうことで、ワードプレスの脆弱性に目をつけて攻撃されてしまう可能性があるそうです。
(LION BLOGの場合は、すでに実装されています)
/*<meta name="generator"~ を削除*/
remove_action('wp_head','wp_generator');
このコードでは、metaタグで書かれている上記の情報しか削除することはできません。
ソース内には他にも「〇〇.css?ver=4.9.1」などと記載されている部分がいくつもあります。
それに対応するコードも紹介されているサイトがありましたが、もう少し理解を深めてから改めて追記します。