なんか事あるごとに追加してぐちゃぐちゃになってしまっているfunction.php。試しに入れてみたものが残っていたりするので整理してみた。特有なものは除いて最低限必要そうなものをまとめてみた。
アイキャッチ画像を使用可能にする
これを設定すると投稿作成画面に「アイキャッチ画像」項目が表示される。アイキャッチ画像を設定した記事のURLをSNS(Twitter、Facebookなど)でポストした場合、アイキャッチ画像もSNS上でシェアされるようになる。記事一覧で使うなら設定しておく必要あり。
add_theme_support( 'post-thumbnails' );
//サイズを指定するなら下記も記述 なくても大丈夫
set_post_thumbnail_size(200, 150, true);
function.phpでサイズ指定しない場合は、ダッシュボードツールバーの「設定 / メディア」から設定、もしくは挿入するPHPページに指定する。
<?php the_post_thumbnail('thumbnail'); ?>//サムネイルサイズで表示
<?php the_post_thumbnail('medium'); ?>//中サイズ
<?php the_post_thumbnail('large'); ?>//大サイズ
<?php the_post_thumbnail('full'); ?>//フルサイズ
<?php the_post_thumbnail('array(100,100) ); ?>//the_post_thumbnail関数を使用する場合
<?php
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 300, 200, true );//指定サイズに縮小して切り抜く
?>
<?php
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 300, 300 );//指定サイズにリサイズする
?>
管理バーの非表示

ブラウザの上に表示されるバーを非表示にする設定。確かサイトの上に空欄ができてしまったので設定したような気がした。ダッシュボードはブックマークしてあるので必要ない。これはすべてのユーザに対して非表示にする設定。
add_filter( 'show_admin_bar', '__return_false' );
管理者ではない場合のみ非表示にする。
if ( ! current_user_can( 'manage_options' )) { show_admin_bar( false );}
これは管理者権限者は表示してそれ以外のユーザがログインした場合に非表示にする設定。
function my_function_admin_bar($content) {
return ( current_user_can("administrator") ) ? $content : false;
}
add_filter( 'show_admin_bar' , 'my_function_admin_bar');
カスタムメニュー追加
カスタムメニュー機能を利用するための設定。管理画面のメニュー設定ができるようになる。
add_theme_support( 'menus' );
ヘッダーなどの表示させたいページに以下を記載。設定したナビ名称をglobal-navigationにした場合の例。
<?php
$args = array(
'menu' => 'global-navigation', // 管理画面で作成したメニューの名前
'container' => false, // <ul>タグを囲んでいる<div>タグを削除(div, nav, falseのいずれか)
);
wp_nav_menu($args);
?>
抜粋文字の設定
抜粋文字の制御。別記事でも書いたな。
// 続きを読むの表記を変更
function tuzuki_excerpt_more($post) {
return '<a class="type-more" href="'. get_permalink($post->ID) . '">' . ' ...<i class="fas fa-angle-double-right"></i> MORE' . '</a>';
}
add_filter('excerpt_more', 'tuzuki_excerpt_more');
// 抜粋の長さを変更する
function custom_excerpt_length( $length ) {
return 90;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
wp_get_archives の年表記を置き換える
wp_get_archivesの年表記はデフォルトだと「2021年10月1日」みたいに漢字表記になるので「.」などの別の文字に変更する。
function my_archives_link($html){
$html = str_replace('年','.',$html);
$html = str_replace('月','',$html);
return $html;
}
add_filter('get_archives_link', 'my_archives_link');
// カテゴリ・アーカイブウィジェットの投稿数のカッコを取り除く
function remove_post_count_parentheses( $output ) { //outputを定義
$output = preg_replace('/<\/a>.*\((\d+)\)/','</a><span class="post-count">_$1</span>',$output);//aタグの閉じかっこの後にある数字を除去
return $output;
}
add_filter( 'wp_list_categories', 'remove_post_count_parentheses' );//フィルター関数を追加wp_list_categoriesが入力されたら上記remove_post_count_parenthesesを返す
add_filter( 'get_archives_link', 'remove_post_count_parentheses' );
コメント関連の設定
あとブログ上でのコメントやりとり好きじゃないのでコメント欄表示用のコードを入れてないがコメント関連の設定。コメント投稿フォームの「名前」「メールアドレス」「ウェブサイト」の項目を削除する設定。
add_filter('comment_form_default_fields', 'my_comment_form_default_fields');
function my_comment_form_default_fields( $args ) {
$args['author'] = ''; // 「名前」を削除
$args['email'] = ''; // 「メールアドレス」を削除
$args['url'] = ''; // 「ウェブサイト」を削除
return $args;
}
コメント欄のオートリンク機能を無効化にする設定。コメント欄にURLが記載されると自動的にリンクを貼るようになっているのを無効にする。htmlとして認識しないようにテキストに変換する。
remove_filter('comment_text', 'make_clickable', 9);
function invalidate_comment_tags($comment_content) {
if (get_comment_type() == 'comment') {
$comment_content = htmlspecialchars($comment_content, ENT_QUOTES);
}
return $comment_content;
}
add_filter('comment_text', 'invalidate_comment_tags', 9);
add_filter('comment_text_rss', 'invalidate_comment_tags', 9);
add_filter('comment_excerpt', 'invalidate_comment_tags', 9);
整理してみたら意外と少なかった気がする。他はブログカードや特殊機能を追加する場合に設定するので別記事を参照。
NOTICES
- 記事内容は実装させたものがほとんどですが自己責任で参考にしてください。