• Есть код, он добавляет произвольное поле для категорий. Как сделать тоже самое, но для таксомонии may_tax?

    if ( ! function_exists( 'title_fo_h2' ) ) :
    function title_fo_h2(){
    global $superper;
                 if (is_category()){ // если категория
                    // получаем ID категории
                    $cat_id = get_query_var('cat');
                    // извлекаем данные из базы данных
                    $cat_data = get_option("category_$cat_id");
                    // выводим данные
                    if (!empty($cat_data['cat_title'])){ // если присутствует заголовок
                        echo $cat_data['cat_title']; // выводим заголовок
    
                    }else{                                // иначе
                        wp_title( '', true, 'right' ); // выводим стандарный заголовок сайта
                    }//if
                }
    
     }
    //endif;
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Сорри, не тот код вставил

    // добавляет вызов функции при инициализации административного раздела
    add_action('admin_init', 'category_custom_fields', 1);
    // функция расширения функционала административного раздела
    function category_custom_fields()
        {
            // добавления действия после отображения формы ввода параметров категории
            add_action('edit_category_form_fields', 'category_custom_fields_form');
            // добавления действия при сохранении формы ввода параметров категории
            add_action('edited_category', 'category_custom_fields_save');
        }
    
    function category_custom_fields_form($tag)
        {
            $t_id = $tag->term_id;
            $cat_meta = get_option("category_$t_id");
    ?>
            <tr class="form-field">
            <th scope="row" valign="top"><label for="extra1"><?php _e('Cat Title'); ?></label></th>
            <td>
            <input type="text" name="Cat_meta[cat_title]" id="Cat_meta[cat_title]" size="25" style="width:60%;" value="<?php echo
            $cat_meta['cat_title'] ? $cat_meta['cat_title'] : ''; ?>"><br />
                        <span class="description"><?php _e('Title категории'); ?></span>
                    </td>
            </tr>
            <?php
        }
    
    function category_custom_fields_save($term_id)
        {
            if (isset($_POST['Cat_meta'])) {
                $t_id = $term_id;
                $cat_meta = get_option("category_$t_id");
                $cat_keys = array_keys($_POST['Cat_meta']);
                foreach ($cat_keys as $key) {
                    if (isset($_POST['Cat_meta'][$key])) {
                        $cat_meta[$key] = $_POST['Cat_meta'][$key];
                    }
                }
                //save the option array
                update_option("category_$t_id", $cat_meta);
            }
        }

    Разобрался. Вот решение.

    add_action('admin_footer_text', 'usage');
    // добавляет вызов функции при инициализации административного раздела
    add_action('admin_init', 'tag_custom_fields', 1);
    // функция расширения функционала административного раздела
    function tag_custom_fields()
        {
            // добавления действия после отображения формы ввода параметров категории
            add_action('edit_tag_form_fields', 'tag_custom_fields_form');
            // добавления действия при сохранении формы ввода параметров категории
            add_action('edited_post_tag', 'tag_custom_fields_save');
         add_action( 'create_post_tag', 'tag_custom_fields_save');
    add_action( 'post_tag_add_form_fields', 'tag_custom_fields_form');
        }
    
    function tag_custom_fields_form($tag)
        {
            $t_id = $tag->term_id;
            $cat_meta = get_option("post_tag_$t_id");
    ?>
            <tr class="form-field">
            <th scope="row" valign="top"><label for="extra1"><?php _e('Cat Title'); ?></label></th>
            <td>
            <input type="text" name="Cat_meta[cat_title]" id="Cat_meta[cat_title]" size="25" style="width:60%;" value="<?php echo
            $cat_meta['cat_title'] ? $cat_meta['cat_title'] : ''; ?>"><br />
                        <span class="description"><?php _e('Title'); ?></span>
                    </td>
            </tr>
            <?php
        }
    
    function tag_custom_fields_save($term_id)
        {
            if (isset($_POST['Cat_meta'])) {
                $t_id = $term_id;
                $cat_meta = get_option("post_tag_$t_id");
                $cat_keys = array_keys($_POST['Cat_meta']);
                foreach ($cat_keys as $key) {
                    if (isset($_POST['Cat_meta'][$key])) {
                        $cat_meta[$key] = $_POST['Cat_meta'][$key];
                    }
                }
                //save the option array
                update_option("post_tag_$t_id", $cat_meta);
            }
        }
    $t_id = $tag->term_id;
            $cat_meta = get_option("post_tag_$t_id");

    Всё равно не понял. Вот функция получает все опции тега `

    get_option("post_tag_$t_id");

    а если у меня вместо тега будет произвольная таксомония, мне надо писать

    get_option("may_tax_$t_id");

    Последний вариант не работает.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Как добавить произвольное поле в произвольную таксомо» закрыта для новых ответов.