1/26にWordPressが5.9に、それに伴い新しいテーマのWordPressを5.9とテーマをTwenty Twenty-Twoが使える様になったのでさっそく変更をした。
今まで使っていたoneではサイトの配置に制限があったのがかなり自由になって前はphpやCSSを書いていたのがエディター上から簡単に変更できるようになった。
ただ今までphpに書いてたのがheaderなどどこに書けばいいのかがいまいちよくわからなかったりしたので仕方なく代わりに新たなプラグインをインストールもした。
前と全く同じではないけど見た感じは大分近づけたかな。
今後も少しずつ更新していくつもり。
現在(2022/07/09)6.0を使用
functions.phpの変更
固定ページに抜粋(ディスクリプション)を追加
タイトルのセパレータを|に変更
twitterカードを設置
パスワードをかけたページの設定
記事の前後に同じカテゴリーを表示させる
// ここから変更を追加
/** added description */
add_post_type_support( 'page', 'excerpt' );
// タイトルのセパレータを変更
function change_separator() {
return "|"; // ここに変更したい区切り文字を書く
}
add_filter('document_title_separator', 'change_separator');
/*********************
OGPタグ/Twitterカード設定を出力
*********************/
function my_meta_ogp() {
if( is_front_page() || is_home() || is_singular() ){
global $post;
$ogp_title = '';
$ogp_descr = '';
$ogp_url = '';
$ogp_img = '';
$insert = '';
if( is_singular() ) { //記事&固定ページ
setup_postdata($post);
$ogp_title = $post->post_title;
$ogp_descr = mb_substr(get_the_excerpt(), 0, 100);
$ogp_url = get_permalink();
wp_reset_postdata();
} elseif ( is_front_page() || is_home() ) { //トップページ
$ogp_title = get_bloginfo('name');
$ogp_descr = get_bloginfo('description');
$ogp_url = home_url();
}
//og:type
$ogp_type = ( is_front_page() || is_home() ) ? 'website' : 'article';
//og:image
if ( is_singular() && has_post_thumbnail() ) {
$ps_thumb = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
$ogp_img = $ps_thumb[0];
} else {
$ogp_img = 'https://hiroshitsuchiya.com/wp-content/uploads/2019/02/Y1ap7bPVRZ2DfKsWgg6Ew_thumb_53de.jpg';
}
//出力するOGPタグをまとめる
$insert .= '<meta property="og:title" content="'.esc_attr($ogp_title).'" />' . "\n";
$insert .= '<meta property="og:description" content="'.esc_attr($ogp_descr).'" />' . "\n";
$insert .= '<meta property="og:type" content="'.$ogp_type.'" />' . "\n";
$insert .= '<meta property="og:url" content="'.esc_url($ogp_url).'" />' . "\n";
$insert .= '<meta property="og:image" content="'.esc_url($ogp_img).'" />' . "\n";
$insert .= '<meta property="og:site_name" content="'.esc_attr(get_bloginfo('name')).'" />' . "\n";
$insert .= '<meta name="twitter:card" content="summary_large_image" />' . "\n";
$insert .= '<meta name="twitter:site" content="@hiroshitsuch" />' . "\n";
$insert .= '<meta property="og:locale" content="ja_JP" />' . "\n";
//facebookのapp_id(設定する場合)
$insert .= '<meta property="fb:app_id" content="397597987468612">' . "\n";
//app_idを設定しない場合ここまで消す
echo $insert;
}
} //END my_meta_ogp
add_action('wp_head','my_meta_ogp');//headにOGPを出力
/* 保護中: を非表示*/
add_filter('protected_title_format', 'remove_protected');
function remove_protected($title) {
return '%s';
}
/* 保護中:の記事を一覧から非表示*/
function custom_pre_get_posts($query) {
if(is_singular() || is_admin()) {
return;
}
$query->set('has_password', false);
}
add_action('pre_get_posts', 'custom_pre_get_posts');
/* パスワードの保存期間を1日*/
function custom_postpass_time() {
require_once ABSPATH . 'wp-includes/class-phpass.php';
$hasher = new PasswordHash( 8, true );
setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), time() + DAY_IN_SECONDS, COOKIEPATH );
wp_safe_redirect( wp_get_referer() );
exit();
}
add_action( 'login_form_postpass', 'custom_postpass_time' );
/* 記事の前後に同じカテゴリーを表示させる*/
add_filter( 'get_next_post_where' , 'navigate_in_same_taxonomy_where' );
add_filter( 'get_previous_post_where' , 'navigate_in_same_taxonomy_where' );
function navigate_in_same_taxonomy_where( $original ) {
global $wpdb, $post;
$where = '';
$taxonomy = 'category';
$op = ('get_previous_post_where' == current_filter()) ? '<' : '>';
$where = $wpdb->prepare( "AND tt.taxonomy = %s", $taxonomy );
if ( ! is_object_in_taxonomy( $post->post_type, $taxonomy ) )
return $original ;
$term_array = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
$term_array = array_map( 'intval', $term_array );
if ( ! $term_array || is_wp_error( $term_array ) )
return $original ;
$where = " AND tt.term_id IN (" . implode( ',', $term_array ) . ")";
return $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $where", $post->post_date, $post->post_type );
}
更新日を追加
ブロックの投稿日の最終更新日を表示するをonにする。
WordPress6.0.3 2022/10/20追加
oneではphpを修正したけど今回はよくわからなかったのでプラグインを追加した。
WP Last Modified Info
descriptionの追加
検索結果のスニペット(サイトの説明文)にカテゴリーやタブの説明を表示させる
プラグインのAll in One SEOをインストール
Google Analytics
プラグインのSite Kit by Googleをインストール
FaceBook Messengerアプリ
プラグインFacebook Chat Pluginをインストール
スポットライトモードオフ
スポットライトモードとは「現在のブロックをハイライト表示し、その他のコンテンツは暗くする。」。
これだと他が薄くて見づらいのでオフにすることに。
右上の︙>設定>外観
スポットライトモードをオフにする。