ナビゲーションメニューのclassにページやカテゴリーのスラッグを追加してみる

WordPressのナビゲーションメニューで出力されるソースにスラッグを追加してみました。
命名規則は、カテゴリーと固定ページなどで同じスラッグを使っても問題とならないよう、投稿タイプやタクソノミーのスラッグも含めて、menu-item-category-news(newsというカテゴリーのメニューの場合)となるようにしています。

function add_slug_nav_menu_css_class( $classes, $item ) {
	switch ( $item->type ) {
	case 'post_type' :
		$post = get_post( $item->object_id );
		if ( $post ) {
			$classes[] = esc_attr( 'menu-item-' . $item->object . '-' . $post->post_name );
		}
		break;
	case 'taxonomy' :
		$term = get_term( $item->object_id, $item->object );
		if ( $term ) {
			$classes[] = esc_attr( 'menu-item-' . $item->object . '-' . $term->slug );
		}
		break;
	default :
	}
	$classes = array_unique( $classes );
	return $classes;
}
add_filter( 'nav_menu_css_class', 'add_slug_nav_menu_css_class', 10, 2 );

出力例

<ul id="menu-header" class="menu">
	<li id="menu-item-250" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-246 current_page_item menu-item-250 menu-item-page-home"><a href="http://www.example.com/">トップページ</a></li>
	<li id="menu-item-36" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36 menu-item-page-privacy"><a href="http://www.example.com/privacy/">個人情報保護方針</a></li>
	<li id="menu-item-35" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-35 menu-item-page-sitemap"><a href="http://www.example.com/sitemap/">サイトマップ</a></li>
</ul>

順序をサポートしたカスタム投稿タイプのデフォルト表示順を変更してみる

カスタム投稿タイプを利用する際に、register post type の has_archiveパラメータを true とすると、投稿タイプのアーカイブ(一覧)表示を行うことができるようになります。

ただし、表示順については設定や入力にかかわらず公開日順になってしまうため、page-attributes をサポートして順序の入力を可能にしていても、表示に反映されることがありません。

今回は、この投稿タイプアーカイブの表示の際に、page-attributes がサポートされていれば、自動的に順序(menu_order)順に従って表示されるようにしてみましょう。

“順序をサポートしたカスタム投稿タイプのデフォルト表示順を変更してみる” の続きを読む

WordPressのget_the_categoryの取得順をカスタマイズする

WordPressで投稿記事が属するカテゴリーを取得する get_the_category は、属するカテゴリーをカテゴリーの名前順で取得してきます。これは、カテゴリーだけでなく、投稿タグの get_the_tags やカスタム分類での get_the_terms でも同様です。

しかしながら、利用シーンによっては名前以外の順序で取得したい場合もあるのではないでしょうか。今回は、この取得順序を指定できる方法を紹介してみたいと思います。

“WordPressのget_the_categoryの取得順をカスタマイズする” の続きを読む

WordPressのユーザーに所属情報などを付加できるプラグイン「User Categories」をリリース

リンクにリンクカテゴリーがあるように、ユーザーにもユーザーカテゴリーを作ることも可能なのでは?と思い、ユーザー用にカスタム分類(ユーザーカテゴリー)を適用させるプラグイン「User Categories」を作成してみました。

“WordPressのユーザーに所属情報などを付加できるプラグイン「User Categories」をリリース” の続きを読む

WordPressで挿入する画像のsrcを相対リンクにする【発展版】

一番最初に書いた記事「WordPressで挿入する画像のsrcを相対リンクにする」では、環境移行がしやすいよう、単に画像のドメイン部分をカットしていました。
ただし、これには1点問題があってRSSリーダーなどで表示する際に、ドメインが異なるため、画像が表示できていませんでした。

この問題に対応するため、以前のコードを元にドメイン部分をショートコード化し、表示する際に、運用中のドメインを追加するように改正してみようと思います。

“WordPressで挿入する画像のsrcを相対リンクにする【発展版】” の続きを読む