Лучшие решения
появляются в процессе

Как изменить заголовок записи в WordPress     

Заголовок записи в консоли WordPress нельзя оформить, как, например, контент. Для решения этой проблемы добавим метабокс:
add_action( 'add_meta_boxes', 'post_title_box' );
function post_title_box() {
 add_meta_box(
 'post_title_box',
 'Заголовок записи',
 'post_title_box_content',
 'post',
 'normal',
 'high'
 );
}
Функция post_title_box_content отвечает за вывод содержимого метабокса, в данном случае будем выводить редактор TinyMCE, в этом нам поможет функция wp_editor:
function post_title_box_content( $post ) {
 wp_nonce_field( basename( __FILE__ ), 'post_title_box_content_nonce' );
 $post_meta = get_post_meta($post->ID);

 wp_editor((isset($post_meta['my_post_title'])?$post_meta['my_post_title'][0]:''), 'my_post_title', array(
 'wpautop' => 1,
 'media_buttons' => 0,
 'textarea_name' => 'my_post_title', 
 'textarea_rows' => 10,
 'tabindex' => null,
 'editor_css' => '',
 'editor_class' => '',
 'teeny' => 0,
 'dfw' => 0,
 'tinymce' => 1,
 'quicktags' => 1,
 'drag_drop_upload' => false
 ) );
}
При сохранении поста  нужно сохранить и  наш заголовок:
add_action( 'save_post', 'post_title_box_save' );
function post_title_box_save( $post_id ) {
 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
 return;


 if ( !isset( $_POST['post_title_box_content_nonce'] )
 || !wp_verify_nonce( $_POST['post_title_box_content_nonce'], basename( __FILE__ ) ) )
 return;

 if ( 'post' == $_POST['post_type'] ) {
 if ( !current_user_can( 'edit_page', $post_id ) )
 return;
 } else {
 if ( !current_user_can( 'edit_post', $post_id ) )
 return;
 }

 update_post_meta( $post_id, 'my_post_title',$_POST['my_post_title'] );
}
Для вывода заголовка используем следующий код:
$post_title = get_post_meta($post->ID,'my_post_title',true);
echo $post_title;

Хорошая статья? Оцените!
(1 оценок, среднее: 5,00 из 5)
Загрузка...


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *