有益なことを何も書かないという勇気

最近少し忙しかった(当社比)ので今日はお休みでございます。
何もしていない訳ではないんだけどブログの記事になるようなことは何もしていないというアレです。
つまり、おやすみなさいということで( ˘ω˘)スヤァ

GeneratePressで検索結果を全文表示にする

GeneratePressのメモ書き3つ目。今回はタイトル通り検索結果の記事を全文表示にする方法です。
デフォルトでは設定に関わらず検索結果は抜粋表示になるようで、これを変更するカスタマイズ項目も現時点ではありません。
しかし、例によって公式がフィルターを用意してくれているのでこれを利用することで変更が可能です。

add_filter('generate_show_excerpt', function($show_excerpt)
{
	if (is_search())
	{
		return false;
	}
	return $show_excerpt;
});

以上、検索結果なら抜粋を止めるだけの簡単な処理になります。工夫すれば一部の記事だけを全文表示にしてレイアウトすることも出来ますね。公式にも使用例があるので参考にしてみるといいかもしれません。
公式ドキュメント → https://docs.generatepress.com/article/generate_show_excerpt/

ひとまず自分が行ったカスタマイズは全て書いたので、GeneratePress記事は今回で一段落です。
また何か手を加えた時には記事にしようと思います。それではまた。

GeneratePressでカテゴリなどの表示位置を変更する

今日も引き続きGeneratePressに関する記事になります。概要については前回記事参照ということで。
長くなりそうなので早速本題に移りますね。

GeneratePressではカテゴリやタグは記事の下に表示されます。
これを日付などと同じ箇所に表示させたいのですが、該当するカスタマイズ項目が無いのでコードを追加します。
といっても前回同様、GeneratePress側でフィルターが予め用意されているのでコードは単純です。

add_filter('generate_header_entry_meta_items', function() 
{
	return array('date', 'categories', 'tags', 'author');
});
add_filter('generate_footer_entry_meta_items', function()
{
	return array('comments-link');
});

それぞれの記事情報(entry-meta)に表示したい要素を配列で返すだけOKです。順番も反映されます。
上記のコードでは記事のヘッダーに日付、カテゴリ、タグ、投稿者が表示され、フッターにコメントへのリンクが表示される形になります。この辺はお好みでどうぞ。

で、これで終わりかと思いきや、カテゴリやタグをヘッダー側に表示すると対応するアイコンが表示されなくなります。
意図は分かりませんが、ヘッダー側ではアイコンを表示しないようcssで設定されているようです。
アイコンを表示したい場合は以下のcssを追加します。

.entry-header .cat-links::before, .entry-header .tags-links::before, .entry-header .comments-link::before
{
	display: inline-block;
}

これでアイコンも表示されるようになりました。
後は追加で余白などを設定して見た目を整えれば完成…ではなく。

GeneratePressではentry-metaに表示する情報が無い場合、entry-metaそのものをcssで非表示にしています。
しかしこれらは常にデフォルトの状態を想定しており、上記カスタマイズの内容は反映してくれません。
設定によっては空のentry-metaが表示されて余分な余白が発生してしまうため、きちんと非表示になるようコードを追加しておきます。

add_action('init', function()
{
	$settings = wp_parse_args(
		get_option('generate_blog_settings', array()),
		generate_blog_get_defaults());
	
	if (!is_singular() && !$settings['comments'])
	{
		$css .= '.blog footer.entry-meta, .archive footer.entry-meta {display: none;}';
	}
	if (is_singular() && !$settings['single_post_navigation'])
	{
		$css .= '.single footer.entry-meta {display: none;}';
	}
	
	add_action('wp_head', function() use($css)
	{
		echo("<style>$css</style>");
	});
});

上記コードはGeneratePressの有料ライセンスのファイル(gp-premium\blog\functions\generate-blog.php)を参考に書きました。見様見真似の怪しいコードですが…
$settings = ... の部分でカスタマイズ設定を取得してentry-metaの表示を制御しています。
例えばカテゴリなら$settings['categories']、個別ページでは$settings['single_categories']で表示設定を取得できます。

今回はコメントやページ送りの表示設定に応じてentry-metaが非表示になる、という動作です。
本来ならヘッダー側も処理を書くべきですが、当ブログでは日付を常時表示しているのと、あと疲れたので妥協しました。

という訳で長くなりましたが、以上で完了となります。
カテゴリなどの位置変更はフィルターが用意されていたので、後半のentry-meta非表示についてもそのうち公式で対応してくれるようになるかもしれませんね。そうなるといいな!

GeneratePressで日付をタイトル前に表示する

唐突ですが、当サイトはGeneratePressというWordPressテーマを利用して作られております。
このテーマは柔軟性が高く、大抵のカスタマイズは視覚的な操作か、簡単なコーディングで済むように設計されているのが特徴です。控えめに言ってとても使いやすい。
とはいえ情報が見つからず苦労することもあったので、自分が行ったカスタマイズについてメモを残しておこうと思います。

まずは日付をタイトルの前に表示したい!というやつです。
デフォルトではタイトルの後に日付、投稿者名と表示されるようになっています。英語圏ではこれが普通なのかもしれませんが、個人的には手前の方がしっくり来ますね。

これを変更するカスタマイズ項目は現時点では見当たらないのでコードを書き加えます。
とはいえGenerate Press側で色々とフックが用意されているので非常に簡単。

add_action('after_setup_theme', function()
{
	remove_action('generate_after_entry_title', 'generate_post_meta');
	add_action('generate_before_entry_title', 'generate_post_meta');
});

これでタイトルの前に日付が表示されるようになるので、後はお好みでスタイルシートを書いて整形すれば完了です。
因みに私の場合、phpやcssの追加にはCode Snippetsプラグインを利用させて頂いております。これも便利!

また、フックに関しては以下の公式ドキュメントが参考になりました。
フック一覧 → https://docs.generatepress.com/collection/hooks/
フックの呼び出し箇所 → https://docs.generatepress.com/article/hooks-visual-guide/

次回は記事下部のカテゴリ&タグを日付と同じ上部に表示する方法について書く予定です。

錬金術はじめました 3日目

太ももに見入る仲間のレント君。

という訳でライザのアトリエ、3日目でございます。
丁度二日前にアップデートが入っていたらしく、フォトモードなどが追加されておりました。早速試した結果がこれです。
キャラクターの配置やポージングが出来るので冒険した場所でちょこちょこ撮ってみるのもいいかもしれませんね。

ゲーム本編としてはついに錬金術が解禁されました。
それに伴い各種材料の採取が出来るようになったので、早速そこらの草を毟ったりゴミ袋を漁ったり木箱を壊したりする危ない人と化しています。錬金術の発展に犠牲はつきものだ!

材料をあれこれ集め、これから錬金術の初歩アイテムを順に作っていぞ、という所で今回は終了。
今日は少し忙しかったので、時間にして30分ちょっとのスロー進行。
なーに、太ももは逃げない!イベント期間などを気にせず、好きな時に好きなだけ遊べるのが一人用ゲームの良い所なのです。

まぁ、流石に次回はもうちょっと進めたい所ですが…!