Рубрика // WordPress 21.04.16

WordPress Второе Произвольное поле для категории

Добавив этот код в файл function.php,  в админке появится новое текстовое поле (дополнительное описание), его можно вывести на сайте, если перейти на страницу с категорией.

Код первого произвольного поля для Категории:

 // добавляет вызов функции при инициализации административного раздела
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('Доп. Описание 1:'); ?></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);
        }
    }

Для вывода стандартного Description Категории используем код:

<?php echo category_description(); ?>

Для вывода первого дополнительного произвольного поля (который мы добавили), используем код:

  <?php 
$cat_id = get_query_var('cat'); 
$cat_data = get_option("category_$cat_id");  
echo $cat_data['cat_title'] 
?>

Добавляем второе Произвольное поле для Категории:

function pippin_taxonomy_edit_meta_field($term) {
 	// put the term ID into a variable
	$t_id = $term->term_id;
	// retrieve the existing value(s) for this meta field. This returns an array
	$term_meta = get_option( "taxonomy_$t_id" ); ?>
	 <tr class="form-field">
	<th scope="row" valign="top"><label for="term_meta[custom_term_meta]">
		<?php _e( 'Доп. Описание 2:', 'pippin' ); ?></label></th>
		<td>
			<input type="text" style="height:150px;" wrap="soft" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="<?php echo esc_attr( $term_meta['custom_term_meta'] ) ? esc_attr( $term_meta['custom_term_meta'] ) : ''; ?>">
			<p class="description"><?php _e( 'Enter a value for this field','pippin' ); ?></p>
		</td>
	</tr>
<?php
}
add_action( 'category_edit_form_fields', 'pippin_taxonomy_edit_meta_field', 10, 2 );



// Сохранение результата
function save_taxonomy_custom_meta( $term_id ) {
	if ( isset( $_POST['term_meta'] ) ) {
		$t_id = $term_id;
		$term_meta = get_option( "taxonomy_$t_id" );
		$cat_keys = array_keys( $_POST['term_meta'] );
		foreach ( $cat_keys as $key ) {
			if ( isset ( $_POST['term_meta'][$key] ) ) {
				$term_meta[$key] = $_POST['term_meta'][$key];
			}
		}
		// Save the option array.
		update_option( "taxonomy_$t_id", $term_meta );
	}
}  
add_action( 'edited_category', 'save_taxonomy_custom_meta', 10, 2 );  
add_action( 'create_category', 'save_taxonomy_custom_meta', 10, 2 );

Вывод второго произвольного поля для Категории:

<?php $t_id = get_queried_object()->term_id;  //  Вывод описания категории произвольное поле № 2
$term_meta = get_option( "taxonomy_$t_id" );
echo $term_meta['custom_term_meta']; ?>
  • Facebook
  • Memori
  • Twitter

Написать комментарий

Copyright © 2010-2011 Как создать сайт и заработать.. Все права защищены.
интернет