【WordPressの基礎】テーマにウィジェットを追加する「ウィジェットかサイドバーかそれが問題だ」

こんにちは、yumiです。

昨日に引き続き、プレーンなwordpress作りにチャレンジしているのですが、ウィジェット周りの設定方法を気持ちいいくらい忘れていたので、復習がてら書いておきます。

まず、ウィジェットを追加するサイドバーを作ってあげるためにfunctions.phpにwidgets_initを追加します。

//widgetsの設定
function my_widgets_init() {

	register_sidebar( array(
		'name' => 'main sidebar',
		'id' => 'main_sidebar',
		'before_widget' => '<div>',
		'after_widget' => '</div>',
		'before_title' => '<h2>',
		'after_title' => '</h2>',
	) );

	register_sidebar( array(
		'name' => 'sub sidebar',
		'id' => 'sub_sidebar',
		'before_widget' => '<div>',
		'after_widget' => '</div>',
		'before_title' => '<h2>',
		'after_title' => '</h2>',
	) );
}
add_action( 'widgets_init', 'my_widgets_init' );

こんな感じで、複数でもサイドバーを追加できます。
追加したら、管理メニューの外観に「ウィジェット」が表示されるはずなので、普通に必要なウィジェットをドラックドロップしましょう。

メニューの3番目に「ウィジェット」が入ります。

実際にサイトにウィジェット(サイドバー)を反映させるには、sidebar.phpなどに

<?php if ( is_active_sidebar( 'main_sidebar' ) ) : ?>
<div id="main_sidebar">
	<?php dynamic_sidebar( 'main_sidebar' ); ?>
</div>
<?php endif; ?>
<?php if ( is_active_sidebar( 'sub_sidebar' ) ) : ?>
<div id="sub_sidebar">
	<?php dynamic_sidebar( 'sub_sidebar' ); ?>
</div>
<?php endif; ?>

という風にdynamic_sidebar関数によってregister_sidebarで付けたidで呼び出します。
“【WordPressの基礎】テーマにウィジェットを追加する「ウィジェットかサイドバーかそれが問題だ」”の続きを読む

【WordPressのスリム化計画その1】ヘッダーの中を綺麗にしよう

こんにちは、yumiです。
仕事が一段落したらブログも一段落してしまいました。すっかり春ですね。心機一転、Wordpressのスリム化計画と題して書いていきたいと思います。

というのも久々にWordpressのプレーンな状態を作ろうとイチからテーマを作っていたら、デフォルトで色んなものを突っ込んでいたり、はたまた必要なものが無かったりしたのでその辺をメモしておきたいなあと。

先ずはheadタグの中を軽くお掃除したいと思います。

generatorは前からあったけれど、emojiタグなんてものも突っ込まれるようになったのですね・・・。
あと管理バーも最初からオフにしておきたいし、タイトルタグの自動生成も何処にいったかなと思ったらfunction.phpに移動してる・・・。

という訳で、fucntions.phpに以下を記述してあげるとemoji関連の記述が減って、headタグ内がちょっとスッキリしてくれます。

(もちろん、絵文字をサイトで使うという方はそのままにしておいてくださいね。)

function disable_emoji() {
     remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
     remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
     remove_action( 'wp_print_styles', 'print_emoji_styles' );
     remove_action( 'admin_print_styles', 'print_emoji_styles' );
     remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
     remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
     remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
     add_filter( 'emoji_svg_url', '__return_false' );
}
add_action( 'init', 'disable_emoji' );

generatorを消したければ

remove_action( 'wp_head', 'wp_generator' );

管理バーを消したければ

add_filter( 'show_admin_bar', '__return_false' );

を追記してください。

あとは、普通にテーマを使っていれば入っているはずですが、タイトルタグは

add_theme_support( 'title-tag' );

で自動生成されていますので、funtions.phpから消さないこと。

“【WordPressのスリム化計画その1】ヘッダーの中を綺麗にしよう”の続きを読む

【Twenty Seventeenのちょこっとカスタマイズ】フォントに游ゴシックを加えよう【CSS】

こんにちは、yumiです。今日は初心に帰って?ほんとにちょこっとカスタマイズです。

WordPressのテーマ、Twenty Seventeenは各言語に対してそれぞれfont-familyを指定しています。が、残念ながらヒラギノ角ゴシック、メイリオだけの指定になっているので、みんな大好き「游ゴシック」を追加しましょう。
ソースはstyle.cssのこのへん。

/* Typography for Japanese Font */

html[lang="ja"] body,
html[lang="ja"] button,
html[lang="ja"] input,
html[lang="ja"] select,
html[lang="ja"] textarea {
	font-family: "Hiragino Kaku Gothic Pro", Meiryo, sans-serif;
}

“【Twenty Seventeenのちょこっとカスタマイズ】フォントに游ゴシックを加えよう【CSS】”の続きを読む

【Twenty Seventeenのちょこっと解説】ヘッダーイメージのCSSがアツイ【object-fit】

こんにちは、yumiです。今日はTwenty Seventeenのちょこっと解説として、CSSについてのお話。

ヘッダーメディアのインパクトが強いWordpressのテーマ、Twenty Seventeen。CSS覗くまでbackground-size使ってるんでしょ、とタカをくくっていたのですが。
なんとobject-fitが使われてる!と知って居ても立ってもいられず記事にしています。解説ていうか報告ていうか。

ソースはこのへん。

@supports ( object-fit: cover ) {
	.has-header-image .custom-header-media img,
	.has-header-video .custom-header-media video,
	.has-header-video .custom-header-media iframe,
	.has-header-image:not(.twentyseventeen-front-page):not(.home) .custom-header-media img {
		height: 100%;
		left: 0;
		-o-object-fit: cover;
		object-fit: cover;
		top: 0;
		-ms-transform: none;
		-moz-transform: none;
		-webkit-transform: none;
		transform: none;
		width: 100%;
	}
}

“【Twenty Seventeenのちょこっと解説】ヘッダーイメージのCSSがアツイ【object-fit】”の続きを読む

【WordPressのちょこっとカスタマイズ】当日のイベントを表示してみよう【イベントスケジュール】

前回の記事「【WordPressのちょこっとカスタマイズ】予約投稿を表示してみよう【イベントスケジュール】」で書いたとおり、post_statusで予約投稿を表示するのは簡単なのですが、このやり方だと、イベント当日の扱いが微妙なのです。

まあ数日表示が変でも気にしないよ、というおおらかな運営ならそのままでもアリだと思いますが、今日はその辺をもう少しフォローするためのお話を。

その日のイベントがあればトップに表示する方法です(他にも色々やり方はあると思いますので、ひとつの考え方としてみてくださいね)。
分刻みのイベントではない場合、秒や分まで見なくても良いと思うので、現在時間から12時間前までの記事を1番上に表示して、其の次に予約投稿を表示する、という方法でいってみましょう。 “【WordPressのちょこっとカスタマイズ】当日のイベントを表示してみよう【イベントスケジュール】”の続きを読む

【WordPressのちょこっとカスタマイズ】予約投稿を表示してみよう【イベントスケジュール】

今日はTwenty Seventeenに限った話ではないのでWordpressのちょこっとカスタマイズ、としました。

ライブとかイベントの予定を、直近順に出したいなーなんて思うとWordpressではちょっと困ることが起きます。投稿日を基準にすると、未来の記事は基本的に公開できない訳です。

そこでちょっとクエリを弄って予約投稿に入っている記事を出す方法を書いてみたいと思います。

例えば、event_scheduleというカテゴリーに入っている予約投稿を直近順に全部出すクエリを書きます。

		$args = array(
			'category_name' => 'event_schedule',
			'post_status' => 'future',
			'order' => 'ASC',
			'posts_per_page' => -1,
		);
		$the_query = new WP_Query( $args );
		if ( $the_query->have_posts() ) :
			/* Start the Loop */
			while ( $the_query->have_posts() ) : $the_query->the_post();
				get_template_part( 'template-parts/post/content', get_post_format() );
			endwhile;
		else : ?>
			<p>予定されているイベントはありません。</p>
		<?php endif; ?>

こんな感じで、予定されているイベントのリストを出力できます。 “【WordPressのちょこっとカスタマイズ】予約投稿を表示してみよう【イベントスケジュール】”の続きを読む

【Twenty Seventeenのちょこっとカスタマイズ】カテゴリーのページタイトルから「カテゴリー:」を取りたい

昨日に引き続き、Wordpressの新テーマTwenty Seventeenのカスタマイズについて。

カテゴリーのページタイトルに自動で出力される「カテゴリー:」を取りましょう。簡単です。

カテゴリーの一覧(アーカイブ)ページは、Twenty Seventeenではarchive.phpで出力されています。

問題のページタイトルの部分は

	<?php if ( have_posts() ) : ?>
		<header class="page-header">
			<?php
				the_archive_title( '<h1 class="page-title">', '</h1>' );
				the_archive_description( '<div class="taxonomy-description">', '</div>' );
			?>
		</header><!-- .page-header -->
	<?php endif; ?>

このあたり。the_archive_title()が曲者です。 “【Twenty Seventeenのちょこっとカスタマイズ】カテゴリーのページタイトルから「カテゴリー:」を取りたい”の続きを読む