• Привет.
    Все тексты сохраняются верно но вместо рендера тэгов wp_editor их отображает текстом.
    Взгялните пожалуйста на срины для начала.

    Перед сохранением. WP editor корректно рендерит bold текст.
    http://medical_ensurance.divisionby0.ru/questions/wp_editor_befor_saving.jpg

    После сохранения. WP editor отображает html тэги в тексте вместо того чтобы их рендерить.
    http://medical_ensurance.divisionby0.ru/questions/wp_editor_after_saving.jpg

    plugin root php

    
    $post_type = 'company';
    
    function company_admin() {
        new InitCompanyAdmin();
    }
    function company_admin_save( $company_id, $company ) {
        new SaveCompany($company_id, $company);
    }
    
    // show company. Was called from InitCompanyAdmin class
    function display_company_meta_box( $company ) {
        $companyMetaBox = new CompanyMetaBox();
        $companyMetaBox->show($company);
    }
    
    // save company
    add_action( 'save_post', 'company_admin_save', 10, 2 );
    add_action( 'admin_init', 'company_admin' );
    

    InitCompanyAdmin class

    
    class InitCompanyAdmin {
        public function __construct(){
            add_meta_box( 'edit_company_meta_box',
                'Company Details',
                'display_company_meta_box', // function inside plugin root php
                Company::$postType, 'normal', 'high'
            );
        }
    }
    

    CompanyMetaBox class shows text with html tags instead of visualization

    
    class CompanyMetaBox {
        public function show($company){
            $company_benefits = esc_html( get_post_meta( $company->ID, 'benefits', true ) );
    
            echo '<h1>Benefits</h1>';
            wp_editor( $company_benefits, 'benefits_editor', $settings = array()     ); // shows text with html tags instead of visualization
        }
     }
    

    post saver

    
    class SaveCompany {
        private $companyId;
    
        public function __construct($company_id, $company){
            $isCompanyPostType = $company->post_type == Company::$postType;
    
            if ( $isCompanyPostType ) {
                $this->companyId = $company_id;
    
                $this->saveBenefits();
            }
        }
    
        private function saveBenefits(){
            $benefits = $_POST['benefits_editor'];
            if ( isset( $benefits ) && $benefits != '' ) {
                update_post_meta( $this->companyId, 'benefits', $benefits );
            }
        }
    } 
    
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Привет.

    Предполагаю, что проблема в функции esc_html.
    $company_benefits = esc_html( get_post_meta( $company->ID, 'benefits', true ) );
    Она превращает html-теги в спецсимволы, вот они и не распознаются редактором. Попробуйте её убрать.

    Спасибо. Совершенно верно. Это я вчера еще заметил и убрал но забыл сюда на форум написать. Заработало.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «WordPress custom plugin. wp_editor() отображает html тэги в тексте вместо их рен» закрыта для новых ответов.