この記事は投稿日から、2年以上経過しています。

[その1]WordPressのfunctions.phpに書いておくと便利かもしれないこと の続きです。
掲載順に特に意味はありません、雑多な感じで。
何かしらの参考になれば幸いです。今回も汎用的に使えそうなものをチョイスしています。

(管理画面の)カスタム投稿一覧に項目を追加しソート可能にする

管理画面の記事一覧ページをカスタマイズしてみます。
例として、カスタム投稿一覧をカスタムフィールド「日付」の値で、ソートできるようにします。
以下だと、「イベント情報」をカスタム投稿で作成したとして、記事内のカスタムフィールドにデイトピッカーで入力した 「イベント開催日(日付)」で並べ変えを行うことが可能です。
※カスタム投稿のスラッグは「schedule」としています。

//カスタム投稿一覧に項目を追加する
function add_posts_columns($columns) {
	$columns['カスタムフィールドの値'] = '日付';	
	return $columns;
}
function add_posts_columns_list($column_name, $post_id) {
	if ( 'カスタムフィールドの値' == $column_name ) {
		echo get_post_meta($post_id, 'カスタムフィールドの値', true);		/* ←カスタムフィールドの値を取得して表示 */
	}
}
add_filter( 'manage_edit-schedule_columns', 'add_posts_columns' );		/* ←manage_edit-◯◯◯_columnsはカスタム投稿のスラッグ */
add_action( 'manage_schedule_posts_custom_column', 'add_posts_columns_list1', 10, 2 );		/* ←manage_◯◯◯_posts_custom_columnはカスタム投稿のスラッグ */


//日付でソート可能に
function column_orderby_custom( $vars ) {
 if ( isset( $vars['orderby'] ) && 'カスタムフィールドの値' == $vars['orderby'] ) {
 $vars = array_merge( $vars, array(
 'meta_key' =>; 'カスタムフィールドの値',
 'orderby' =>; 'meta_value'
 ));
 }
 return $vars;
}
add_filter( 'request', 'column_orderby_custom' );
 
function posts_register_sortable( $sortable_column ) {
 $sortable_column['カスタムフィールドの値'] = 'カスタムフィールドの値';
 return $sortable_column;
}
add_filter( 'manage_edit-schedule_sortable_columns', 'posts_register_sortable' );

ビジュアルエディタ/テキストエディタを切り替えると<p>や<br>が消えるのを防ぐ

何気なくビジュアルエディタ⇄テキストエディタを切り替えたばっかりに、大変なことに。ならばオートフォーマット(自動整形)を無効化してみます。

// オートフォーマットの無効化
add_action('init', function() {
	remove_filter('the_title', 'wptexturize');
	remove_filter('the_content', 'wptexturize');
	remove_filter('the_excerpt', 'wptexturize');
	remove_filter('the_title', 'wpautop');  //←タイトルへの<p>タグ挿入を無効化するが、おそらく必要ないと思われるので記述しなくても良いかもしれません
	remove_filter('the_content', 'wpautop');
	remove_filter('the_excerpt', 'wpautop');
	remove_filter('the_editor_content', 'wp_richedit_pre');
});

add_filter('tiny_mce_before_init', function($init) {
	$init['wpautop'] = false;
	$init['apply_source_formatting'] = ture;
	return $init;
});

【こちらもぜひ参考に】
WordPressの自動整形を完全に停止する方法
固定ページのみ自動的に付与されるpタグやbrタグを無効にしてレイアウト崩れを伏せぐ

コメントや検索フォームなどの各部品をHTML5化させる

コメントフォーム、検索フォーム、コメントリスト、ギャラリーでHTML5マークアップの使用を許可します。HTML5の使用を避ける理由は無いと思うので、僕はとりあえず入れちゃいます。

add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) );

スラッグ名が日本語の時、自動的にidに変更

日本語のタイトルがそのままURLになってしまうのを避けるため以下を使用します。
もしも、日本語タイトルのまま投稿した場合「投稿タイプ+id」へ変換されます。
※自分でスラッグを設定した場合は適用されません。
※すでに投稿済みのページにも適用されるので注意して下さい。

function auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
    if ( preg_match( '/(%[0-9a-f]{2})+/', $slug ) ) {
        $slug = utf8_uri_encode( $post_type ) . '-' . $post_ID;
    }
    return $slug;
}
add_filter( 'wp_unique_post_slug', 'auto_post_slug', 10, 4  );

デフォルトで「サイトを見るときにツールバーを表示する」のチェックを外しておく

ユーザー登録時、最初からツールバーを非表示に設定します。

add_filter( 'show_admin_bar', '__return_false' );

ギャラリーのデフォルト値を変更

ギャラリーのデフォルト設定を行います。
以下は、画像リンクなし・1カラム表示・画像サイズはlargeです。

function gallery_default($settings) {
    $settings['galleryDefaults']['link'] = 'none';//リンク設定
    $settings['galleryDefaults']['columns'] = '1';//カラム設定
    $settings['galleryDefaults']['size'] = 'large';//サイズ設定
    return $settings;
}
add_filter( 'media_view_settings', 'gallery_default');

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です