Adjust Admin Categoriesでラジオボタンにならない現象

※Adjust Admin Categoriesは投稿時現在4.2.6まで動作保証

WordPress4.4.1で以下のようにカスタムタクソノミーを作りました。

タクソノミー:ユーザー種類
階層化設定:あり

  • エンドユーザーA
  • エンドユーザーB

「チェックボックスをラジオボタンにする」を含め全て有効化して
カスタム投稿に表示するようにしたのですがラジオボタンになりませんでした。

解決:「親の選択が出来ないようにする」を停止にするとラジオ表示になりました。

テンプレート名と同じcssを読み込む

WordPressのテンプレートを作る時のTipsです。
functions.phpに以下を追加すると
テンプレートのファイル名と同じ名前のCSSを読み込みます。
page.phpならcss/page.cssを読み込む。

add_action('wp_enqueue_scripts', 'theme_enqueue_styles');

function theme_enqueue_styles() {
	global $template;
	$url= get_stylesheet_directory_uri() . '/css/'.basename($template, '.php').'.css';
	// $header = @get_headers($url);
	// if ($header[0] != "HTTP/1.1 404 Not Found") {
  		wp_enqueue_style('page-style',$url, array('sitename-style'));
    // }


}

注意したいのは必ずテンプレート名.cssファイルを読み込もうとするので
テンプレート毎のCSSを作っておくか、
本番時は上記コードのコメントを外してキャッシュプラグインなどを入れると良いかと思います。

カスタム投稿の記事一覧でページネーションがおかしい場合の対処法

デフォルトのページ数は管理画面の設定>表示設定>1ページに表示する最大投稿数に入っている数字(デフォルトでは10)になっています。

目的のカスタム投稿の記事一覧で5記事ごとに表示したい場合
archive-{slug}.php


            $page_count =5;
            $offset = 0;
            $now_page = get_query_var('paged');

            //オフセット計算
            if ($now_page > 1) {
                $offset = ($page_count * $now_page) - $page_count;
            }

            $arg = array(
                'post_type' => 'カスタム投稿のスラッグ'
                'orderby' => 'post_date',
                'order' => 'DESC',
                'offset' => $offset,
     
            );

            $myposts = get_posts($arg);
…
…記事出力
…

//ページネーション
the_posts_pagination(array(
'prev_text'=>'«',
'next_text'=>'»',
	));


function.phpに以下のアクションを入れます


function change_posts_per_page($query) {
    /* 表示件数を5件にセット */
  if ( $query->is_post_type_archive('カスタム投稿のスラッグ') ) {
        $query->set( 'posts_per_page', '5' );
    }
}
add_action( 'pre_get_posts', 'change_posts_per_page' );

これでページネーションは期待通りに動きました。

複数のカスタム投稿の月間アーカイブ一覧を作りたい

wp_get_archivesではpost_typeがひとつしか設定できなかったのでfunction.phpにフィルタを追加することで解決出来ました。
getarchives_whereフィルタでSQL呼び出しの部分の呼び出し条件をINを使って複数設定して呼び出せばOKでした。

以下コードです。

/*アーカイブ取得*/
function add_all_posttype($where,$r){
if( is_post_type_archive('設定したいカスタム投稿のスラッグ')){

$types= ”'aaaa','bbbbb','ccccc','ddddd'”;
return str_replace(
"post_type = 'post' ",
"post_type IN(". $types.")" ,
$where
);
}else{
return $where;
}
}
add_filter('getarchives_where','add_all_posttype',10,2);

/*アーカイブリンク変更*/
function my_link($link_html){
if( is_post_type_archive('設定したいカスタム投稿のスラッグ')){
return str_replace(home_url('/'), home_url('/').'設定したいカスタム投稿のスラッグ/', $link_html);
}
else{
return $link_html;
}
}
add_filter("get_archives_link","my_link");

【wordpress】投稿のカテゴリー表示にCSSでクラス名を付ける

小テーマ等のfunction.phpに以下のコードを付けることでクラスを出力します。
下のコードではcategory-数字になります。



/**
* カテゴリにクラス名を付ける
* @param type $output
* @return string
*/
function add_category_class($output) {
if (!is_admin()) {
$category = get_the_category();
$out = $output;
foreach ($category as $key => $value) {
$cat_name = $value->name;
if (preg_match('/' . $cat_name . '/s', $out)) {
$out = preg_replace('/' . $cat_name . '/s', 'cat_ID . '">' . $cat_name . '', $out);
}
}
return $out;
} else {
return $output;
}
}
add_filter('the_category', 'add_category_class', 10, 1);

処理についてざっくり説明すると、$category_list = get_the_category_list( __( ‘ ‘, ‘テーマ名’ ) );で出力されているカテゴリ名を拾って文字列の置換をしています。
ポイントとしましては$outputが複数行の場合があるため正規表現でsをつけています。

カテゴリーのリストを出力する該当テンプレートファイルはcontent.php,content-single.phpに記述されていることが多いと思います。
簡単なカスタマイズの方法を探したのですが、見つけられませんでしたので泥臭い処理になりました。