カテゴリー編集ページに任意の項目を追加

概要説明

特定のカテゴリーのという処理を行う際にID決め打ちで対応したくない場合などにカテゴリーに情報を追加させて判断させることができるようになるカスタマイズ。カテゴリー説明、メモ欄、カラーコード設定項目など使い方次第です。

functions.php
/*----------------------------------------------------
 カテゴリー編集ページに項目を追加 ( テキストリア )
----------------------------------------------------*/
if ( !function_exists( 'add_category_fields' ) ){

    // 新規登録ページ
    function add_category_fields( $tag ) {
        echo '<div class="form-field term-memo-wrap">';
        echo '    <label for="tag-memo">メモ欄</label>';
        echo '    <textarea name="tag-memo" id="tag-memo" rows="5" cols="40"></textarea>';
        echo '    <p>項目説明</p>';
        echo '</div>';
    }
    add_action ( 'category_add_form_fields',  'add_category_fields');

    // 編集ページ
    function edit_category_fields( $tag ) {
        $id   = $tag->term_id;
        $meta = get_option( 'cat_' . $id );

        $memo_value = '';
        if( isset ( $meta['tag-memo']) ) {
            $memo_value = esc_html($meta['tag-memo']);
        }

        echo '<tr class="form-field term-memo-wrap">';
        echo '    <th><label for="tag-memo">メモ欄</label></th>';
        echo '    <td><textarea name="tag-memo" id="tag-memo" rows="5" cols="40">'.$memo_value.'</textarea>';
        echo '    <p>項目説明</p></td>';
        echo '</tr>';
    }
    add_action ( 'category_edit_form_fields', 'edit_category_fields');

    // 保存処理
    function save_category_fileds( $term_id ) {
        $post_key = 'tag-memo';
        if ( isset( $_POST[$post_key] ) ) {
            $meta = get_option( 'cat_' . $term_id );
            $meta[$post_key] = $_POST[$post_key];
            update_option( 'cat_' . $term_id, $meta );
        }
    }
    add_action ( 'create_term', 'save_category_fileds' ); // 新規登録時
    add_action ( 'edited_term', 'save_category_fileds' ); // 編集時
}

カテゴリーページにて項目が追加されたことを確認

カテゴリー編集ページに任意の項目を追加

チェックボックスの項目を追加 ( 特定の条件判定用 )

functions.php
/*----------------------------------------------------
 カテゴリー編集ページに項目を追加 ( チェックボックス )
----------------------------------------------------*/
if ( !function_exists( 'add_category_fields' ) ){

    // 新規登録ページ
    function add_category_fields( $tag ) {
        echo '<div class="form-field term-exclusion-wrap">';
        echo '    <label for="tag-exclusion">関連記事除外カテゴリー</label>';
        echo '    <input type="checkbox" name="tag-exclusion" id="tag-exclusion" value="1">';
        echo '    <p>項目説明</p>';
        echo '</div>';
    }
    add_action ( 'category_add_form_fields',  'add_category_fields');

    // 編集ページ
    function edit_category_fields( $tag ) {
        $id   = $tag->term_id;
        $meta = get_option( 'cat_' . $id );

        $exclusion_value = '';
        if( isset ( $meta['tag-exclusion']) ) {
            if ( $meta['tag-exclusion'] == 1 ) {
                $exclusion_value = 'checked="checked"';
            }
        }

        echo '<tr class="form-field term-exclusion-wrap">';
        echo '    <th><label for="tag-exclusion">関連記事除外カテゴリー</label></th>';
        echo '    <td><input type="checkbox" name="tag-exclusion" id="tag-exclusion" value="1" '.$exclusion_value.'>';
        echo '    <p>項目説明</p></td>';
        echo '</tr>';
    }
    add_action ( 'category_edit_form_fields', 'edit_category_fields');

    // 保存処理
    function save_category_fileds( $term_id ) {
        $post_key = 'tag-exclusion';

        $meta = get_option( 'cat_' . $term_id );
        if ( isset( $_POST[$post_key] ) ) {
            $meta[$post_key] = $_POST[$post_key];
        } else {
            $meta[$post_key] = '';
        }
        update_option( 'cat_' . $term_id, $meta );
    }
    add_action ( 'create_term', 'save_category_fileds' ); // 新規登録時
    add_action ( 'edited_term', 'save_category_fileds' ); // 編集時
}

登録した項目を使う ( チェックボックス )

$exclusion_falg = 1;
$meta = get_option( 'cat_' . $term_id );
if ( isset($meta['tag-exclusion']) ) {
    if ( $meta['tag-exclusion'] == 1 ) {
        $exclusion_falg = 0;
    }
}
// チェックボックスにチェックを付けた場合は除外
if ( $exclusion_falg ) {
    // 処理
}

追加したテキストエリア項目を表示

$meta = get_option( 'cat_' . $term_id );
if ( isset($meta['tag-memo']) ) {
    echo $meta['tag-memo'];
}

WordPress Developer Resources

関連機能

  1. カテゴリ選択条件付き絞り込み検索を追加する

  2. WordPress Contact Form 7 禁止ワードと日本語判定によるスパム判定処理

  3. WordPress レイアウトに合わせた画像サイズを追加する 自動的に指定サイズのサムネイル画像を作成

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

一度なくした信用取り戻すのは
最初に信用作るより大変なんだ

闇金ウシジマくん
by 丑嶋馨

Profile

PAGE TOP
Amazon プライム対象