所有文本都正确保存。但保存后编辑器会显示html标签。
请先看一下图片。
屏幕保存自定义帖子数据。 WP编辑器正确呈现粗体文本。
befor saving screen
屏幕。 wp编辑器显示带有html标签而不是渲染的文本。
after saving screen
你好,这是插件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 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类 显示带有html标签而非可视化的文本
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
}
}
发布后广告
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 );
}
}
}
答案 0 :(得分:0)
我的错。 CompanyMetaBox类需要删除esc_html