Дополнительные поля для записей, товаров

Плагином: Advanced Custom Fields

Для добавления/редактирования полей в левом меню появиться блок: Группы полей

Данный плагин дает возможность добавлять/редактировать дополнительные поля для записей, товаров. Поля по умолчанию в шаблоне (на сайте) не появляются. Для вывода на сайте необходимо зайти Группы полей -> Инструменты выбрать необходимые поля и нажать Генерировать PHP


Вручную

add_action( 'add_meta_boxes', 'fn_dop_pola_info_box', 10 );
function fn_dop_pola_info_box(){
	add_meta_box( 'fn_dop_pola_info', 'Доп. поля для шаблона', 'fn_dop_pola_info_content', [ 'post', 'page', 'product' ], 'normal', 'high'  );
}
function fn_dop_pola_info_content( $post ){
	?>
	<div class="form-field term-name-wrap">
		<label for="dop_pola_n1" style="font-weight:700;">Поле текстовое многострочное</label>
		<textarea name="dop_pola_n1" id="dop_pola_n1" rows="3" cols="40"><?php echo get_post_meta( $post->ID, 'dop_pola_n1', 1 ); ?></textarea>
		<p style="margin-top:0;font-style:italic;opacity:0.7;"></p>
	</div>
	<div class="form-field term-name-wrap">
		<label for="dop_pola_n2" style="font-weight:700;">Поле редактора</label>
		<?php wp_editor( htmlspecialchars_decode( get_post_meta($post->ID, 'kremen_dop_pola_minides' , true ) ), 'kremen_dop_pola_minides', $settings = ['textarea_name' => 'kremen_dop_pola_minides'] ); ?>
		<p style="margin-top:0;font-style:italic;opacity:0.7;"></p>
	</div>
<?php
}
// Сохранение POST
add_action( 'save_post', 'fn_dop_pola_info_update', 0 );
function fn_dop_pola_info_update( $post_id ){
	if( wp_is_post_autosave( $post_id ) || wp_is_post_revision( $post_id ) ){
		return false;
	}
	$arFlds = [ 'n1', 'n2' ];
	foreach($arFlds as $v){
		if( isset($_POST['dop_pola_'.$v]) ){
			if( empty( $_POST['dop_pola_'.$v] ) ){
				delete_post_meta( $term_id, 'dop_pola_'.$v );
				continue;
			}
			update_post_meta( $post_id, 'dop_pola_'.$v, esc_attr( $_POST['dop_pola_'.$v] ) );
		}
	}
	return $post_id;
}

Особенности вывода

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

wpautop( ‘данные поля’ )Заменяет двойной перенос строки на HTML конструкцию <p>…</p>, а одинарный на <br>.

wp_specialchars_decode( ‘данные поля’ )Конвертирует (декодирует) HTML сущности в их HTML символы. Изменяет только: &, <, >, «, ‘

Пример:

echo wpautop( wp_specialchars_decode( get_post_meta( get_the_ID() , 'dop_pole', true ) ) );