通常投稿では、カテゴリーを指定しない場合、初期値が設定されるため、同じようにカスタム投稿でも初期値のカテゴリーを設定します。
MEMO
カスタム投稿に初期値を設定しない場合、カテゴリーを指定せずに投稿すると、パーマリンクが正しく動きません。これは、カスタム投稿のパーマリンク設定にタクソノミー(カテゴリー)を指定しているためです。目次
デモ会員サイトでのターム(カテゴリー、タグ)作成
カスタム投稿にカテゴリーの初期値のタームと、タグの動作確認用タームを作成します。
管理画面->旅行->旅行カテゴリー、旅行タグ
旅行のターム
- カテゴリー(名前/スラッグ)
旅行全般/travel-whole
- タグ(名前/スラッグ)
ツアー/tour
管理画面->ケーキ->ケーキカテゴリー、ケーキタグ
ケーキのターム
- カテゴリー(名前/スラッグ)
ケーキ全般/cake-whole
- タグ(名前/スラッグ)
果実/fruit
初期値を設定するカスタマイズ
functions.phpに追加します。
自前のグローバル変数はfunctions.phpの上の方で追加しておくと、後で初期値を変更するのに便利です。
functions.php
//****** 自前のグローバル変数 ******
$my_travel_category_default = '旅行全般';
$my_cake_category_default = 'ケーキ全般';
// カスタム投稿タイプでカテゴリ未選択時にデフォルトを設定
function add_defaultcategory_automatically_travel($post_ID) {
global $wpdb;
// 設定されているカスタム分類のタームを取得
$curTerm = wp_get_object_terms($post_ID, 'travel_category');
// 既存のターム指定数が 0(つまり未設定)であれば)初期値のターム名を指定
if (0 == count($curTerm)) {
// 初期値のターム名からターム ID を取得して設定する
global $my_travel_category_default;
$term = get_term_by('name',$my_travel_category_default , 'travel_category');
if ( !empty( $term ) ) {
$defaultTerm = array( $term->term_id );
wp_set_object_terms($post_ID, $defaultTerm, 'travel_category');
}
}
}
add_action('publish_travel', 'add_defaultcategory_automatically_travel');
function add_defaultcategory_automatically_cake($post_ID) {
global $wpdb;
// 設定されているカスタム分類のタームを取得
$curTerm = wp_get_object_terms($post_ID, 'cake_category');
// 既存のターム指定数が 0(つまり未設定)であれば)初期値のターム名を指定
if (0 == count($curTerm)) {
// 初期値のターム名からターム ID を取得して設定する
global $my_cake_category_default;
$term = get_term_by('name',$my_cake_category_default , 'cake_category');
if ( !empty( $term ) ) {
$defaultTerm = array( $term->term_id );
wp_set_object_terms($post_ID, $defaultTerm, 'cake_category');
}
}
}
add_action('publish_cake', 'add_defaultcategory_automatically_cake');
参考
functions.phpGist
テスト投稿で初期値が設定されるのかの確認
カテゴリーを指定無し、タグの指定有りで、テスト投稿します。
公開ボタンをクリックして、指定していなかったカテゴリーが指定されていることを確認します。
旅行記事の投稿テスト
- タイトル
旅行記事の投稿テスト
- 本文
これは、旅行記事の投稿テストです。
内容は何もありませんが、下のインフォメーションは、wp-membersによりアクセス制限されます。
<!--more-->
<div class="information">この部分は、アクセス制限されていますので、ログインしたら見ることができます。</div>
ケーキ記事の投稿テスト
- タイトル
ケーキ記事の投稿テスト
- 本文
これは、ケーキ記事の投稿テストです。
内容は何もありませんが、下のインフォメーションは、wp-membersによりアクセス制限されます。
<!--more-->
<div class="information">この部分は、アクセス制限されていますので、ログインしたら見ることができます。</div>
MEMO
WP-Membersにてアクセス制限した時の確認のため、moreタグを入れています。Monappy: MBDQ39VHypMQwfyR8SshuHvfPNUz321F6B

モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?
コメントを残す