Php 将元框内容输出为格式化文本
我对创建元框还不熟悉,但我已经为自己的需要创建了一个好的元框。但是,我需要其中两个输入框是格式化文本(显示在我的代码中);以这样的方式保存并输出到站点。不过,我似乎无法让它发挥作用。我可以将数据保存到数据库中,这很好,但它不会将文本与诸如分隔符、粗体、h1标记、段落等内容一起保存。虽然我已经删除了许多其他元素以缩短代码供您审阅,但到目前为止,我已经做到了以下几点:Php 将元框内容输出为格式化文本,php,wordpress,Php,Wordpress,我对创建元框还不熟悉,但我已经为自己的需要创建了一个好的元框。但是,我需要其中两个输入框是格式化文本(显示在我的代码中);以这样的方式保存并输出到站点。不过,我似乎无法让它发挥作用。我可以将数据保存到数据库中,这很好,但它不会将文本与诸如分隔符、粗体、h1标记、段落等内容一起保存。虽然我已经删除了许多其他元素以缩短代码供您审阅,但到目前为止,我已经做到了以下几点: class Tour_Meta { public function __construct() { if ( is_adm
class Tour_Meta {
public function __construct() {
if ( is_admin() ) {
add_action( 'load-post.php', array( $this, 'init_metabox' ) );
add_action( 'load-post-new.php', array( $this, 'init_metabox' ) );
}
}
public function init_metabox() {
add_action( 'add_meta_boxes', array( $this, 'add_metabox' ) );
add_action( 'save_post', array( $this, 'save_metabox' ), 10, 2 );
}
public function add_metabox() {
add_meta_box(
'tourMeta',
__( 'Details for this tour', 'dappa' ),
array( $this, 'render_trmeta' ),
'tours',
'advanced',
'high'
);
}
public function render_trmeta( $post ) {
$trmet_itinerary = get_post_meta($post->ID, 'trmet_itinerary', true);
$trmet_overview = get_post_meta( $post->ID, 'trmet_overview', true );
if( empty( $trmet_itinerary ) ) $trmet_itinerary = '';
if( empty( $trmet_overview ) ) $trmet_overview = '';
echo '<div class="form-table" id="tourEntries">';
echo' <h2>Tour Overview</h2>';
wp_editor(htmlspecialchars_decode($trmet_overview) , 'trmet_overview', array(
"media_buttons" => true
));
echo' <h2>Tour Itinerary</h2>';
wp_editor(htmlspecialchars_decode($trmet_itinerary) , 'trmet_itinerary', array(
"media_buttons" => true
));
echo' </div>';
}
public function save_metabox( $post_id, $post ) {
$trmet_new_itinerary = isset( $_POST[ 'trmet_itinerary' ] ) ? sanitize_text_field( $_POST[ 'trmet_itinerary' ] ) : '';
$trmet_new_overview = isset( $_POST[ 'trmet_overview' ] ) ? sanitize_text_field( $_POST[ 'trmet_overview' ] ) : '';
}
}
new Tour_Meta
class-Tour\u-Meta{
公共函数构造(){
if(is_admin()){
添加动作('loadpost.php',数组($this,'init_metabox'));
添加动作('loadpostnew.php',数组($this,'init_metabox');
}
}
公共函数init_metabox(){
add_操作('add_meta_box',数组($this,'add_metabox'));
添加操作('save_post',数组($this,'save_metabox'),10,2);
}
公共函数add_metabox(){
添加元框(
“图尔梅塔”,
__(“本次巡演详情”、“dappa”),
数组($this,'render_trmeta'),
"旅游",,
"先进",,
“高”
);
}
公共职能部门(职位){
$trmet\u itinerary=get\u post\u meta($post->ID,'trmet\u itinerary',true);
$trmet\u overview=get\u post\u meta($post->ID,'trmet\u overview',true);
如果(空($trmet_行程))$trmet_行程=“”;
if(空($trmet_overview))$trmet_overview='';
回声';
echo“旅游概述”;
wp_编辑器(htmlspecialchars_解码($trmet_概述),'trmet_概述',数组(
“媒体按钮”=>正确
));
echo‘旅游行程’;
wp_编辑器(htmlspecialchars_解码($trmet_行程),'trmet_行程',数组(
“媒体按钮”=>正确
));
回声';
}
公共函数save\u metabox($post\u id,$post){
$trmet_new_internative=isset($_POST['trmet_internative'])?清理文本字段($_POST['trmet_internative']):“”;
$trmet_new_overview=isset($_POST['trmet_overview'])?清理文本字段($_POST['trmet_overview']):“”;
}
}
新巡回赛
我还尝试了不同的方式将文章元数据输出到页面,但是如果在后端没有正确保存,那也没什么关系
非常感谢您的任何想法。谢谢 Pfft。好吧,所以很简单 我需要在这些字段上使用
esc\u html()
而不是sanitize\u text\u field()
谢谢 你知道所有的HTML标签都会被删除吗?我对这些都不熟悉,但我想可能是这样的。如果我只是删除它,我的标记还会工作吗?:-)试试看-它至少会将数据保存为-is.Hmmm。我把它取下来,它就停止工作了。在哪里/如何将它们包装在
中?对不起,旁边是一个笑话(您在一个关于(不)删除html标记的问题中使用了。
。很高兴您解决了这个问题!