WordPress5.9

WordPressを5.9とテーマをTwenty Twenty-Twoに変更

1/26にWordPressが5.9に、それに伴い新しいテーマのWordPressを5.9とテーマをTwenty Twenty-Twoが使える様になったのでさっそく変更をした。

今まで使っていたoneではサイトの配置に制限があったのがかなり自由になって前はphpやCSSを書いていたのがエディター上から簡単に変更できるようになった。
ただ今までphpに書いてたのがheaderなどどこに書けばいいのかがいまいちよくわからなかったりしたので仕方なく代わりに新たなプラグインをインストールもした。
前と全く同じではないけど見た感じは大分近づけたかな。
今後も少しずつ更新していくつもり。

現在(2022/07/09)6.0を使用

Twenty Twenty-Oneはこちら

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

WP Last Modified Info

descriptionの追加

検索結果のスニペット(サイトの説明文)にカテゴリーやタブの説明を表示させる

プラグインのAll in One SEOをインストール

プラグインのAll in One SEOをインストール

Google Analytics

プラグインのSite Kit by Googleをインストール

プラグインのSite Kit by Googleをインストール

FaceBook Messengerアプリ

プラグインFacebook Chat Pluginをインストール

Facebook Chat Plugin - Live Chat Plugin for WordPress

Twenty Twenty-Oneはこちら

スポットライトモードオフ

スポットライトモードとは「現在のブロックをハイライト表示し、その他のコンテンツは暗くする。」。
これだと他が薄くて見づらいのでオフにすることに。
右上の︙>設定>外観
スポットライトモードをオフにする。


投稿日

カテゴリー:

投稿者: