我目前正在使用我的第一个插件(处理我的CPT),并且正在保存元框的值。
我希望添加下划线(_
) 到元键,以便它隐藏在自定义字段部分。
我在保存数据时遇到了一些麻烦_
已添加(如果没有_
).
因此,我尝试研究元数组中的内容,但我无法获得echo
或print_r
在我的插件中的一个函数中,该函数将打印在我的管理页面上。
我写了以下内容
function ccp_portfolio_item_info_meta_box_save( $post_id, $post ) {
if ( !isset( $_POST[\'ccp-portfolio-item-info-nonce\'] ) || !wp_verify_nonce( $_POST[\'ccp-portfolio-item-info-nonce\'], basename( __FILE__ ) ) )
return;
$meta = array(
\'_portfolio_item_url\' => esc_url( $_POST[\'ccp-portfolio-item-url\'] )
);
print_r($meta);
// ccp_split_meta_save ($meta, $post_id, $post); // calling my function to split the metas
}
但那不会打印我的
$meta
在我的管理页面顶部,我做错了什么?
@布拉索菲洛
谢谢你的回答
首先,我的表格如下
function ccp_portfolio_item_info_meta_box_display( $post, $metabox ) {
wp_nonce_field( basename( __FILE__ ), \'ccp-portfolio-item-info-nonce\' ); ?>
<p>
<label for="ccp-portfolio-item-url"><?php _e( \'Project <abbr title="Uniform Resource Locator">URL</abbr>\', \'custom-content-portfolio\' ); ?></label>
<br />
<input type="text" name="ccp-portfolio-item-url" id="ccp-portfolio-item-url" value="<?php echo esc_url( get_post_meta( $post->ID, \'_portfolio_item_url\', true ) ); ?>" size="30" tabindex="30" style="width: 99%;" />
</p>
<?php
/* Allow devs to hook in their own stuff here. */
do_action( \'ccp_item_info_meta_box\', $post, $metabox );
}
那么我的保存功能是:
function ccp_portfolio_item_info_meta_box_save( $post_id, $post ) {
if ( !isset( $_POST[\'ccp-portfolio-item-info-nonce\'] ) || !wp_verify_nonce( $_POST[\'ccp-portfolio-item-info-nonce\'], basename( __FILE__ ) ) )
return;
$meta = array(
\'_portfolio_item_url\' => esc_url( $_POST[\'ccp-portfolio-item-url\'] )
);
ccp_split_meta_save ($meta, $post_id, $post); // calling my function to split the metas
}
到目前为止一切都很好,当我打印$金属时,它显示了正确的东西
然后在前面的函数中,我称之为
function ccp_split_meta_save ($meta, $post_id, $post) {
echo \'je suis dans ccp_split_meta_save <br />\';
print_r($meta);
//exit();
foreach ( $meta as $meta_key => $new_meta_value ) {
/* Get the meta value of the custom field key. */
$meta_value = get_post_meta( $post_id, $meta_key, true );
echo \'<br />la meta key est \'.$meta_key.\'</ br>\';
echo \'<br />la meta value est \'.$meta_value.\'</ br>\';
// exit();
/* If there is no new meta value but an old value exists, delete it. */
if ( current_user_can( \'delete_post_meta\', $post_id, $meta_key ) && \'\' == $new_meta_value && $meta_value )
{//delete_post_meta( $post_id, $meta_key, $meta_value );
echo \'<br />je suis dans delete <br />\';
}
/* If a new meta value was added and there was no previous value, add it. */
elseif ( current_user_can( \'add_post_meta\', $post_id, $meta_key ) && $new_meta_value && \'\' == $meta_value )
{
//{add_post_meta( $post_id, $meta_key, $new_meta_value, true );
//echo \'<br /> c est une nouvelle meta value <br />\'; exit();
echo \'<br />je suis dans add <br />\';
}
//}
/* If the new meta value does not match the old value, update it. */
elseif ( current_user_can( \'edit_post_meta\', $post_id, $meta_key ) && $new_meta_value && $new_meta_value != $meta_value )
{ //update_post_meta( $post_id, $meta_key, $new_meta_value );
echo \'<br />je suis dans update <br />\';
}
else
{
echo \'<br /><b>je suis nul part</b> <br />\';
echo \'add_post_meta : \' .current_user_can( \'add_post_meta\', $post_id, $meta_key ).\'<br />\';
}
exit();
}
}
正如您所看到的,这是一个工作/denug函数,因为我已经放置了一些指针来查看数据的位置
奇怪的是如果我
$元=数组(\'portfolio\\u item\\u url=>esc\\u url($\\u POST[\'ccp-portfolio-item-url\'))
然后,elseif(当前用户\\u can(\'add\\u post\\u meta\',$post\\u id,$meta\\u key)&&$新的_元_值&&;“”==$meta\\u值),因此会向数据库中添加一个新条目
如果我有
$元=数组(“\\u portfolio\\u item\\u url”=>esc\\u url($\\u POST[\'ccp-portfolio-item-url])
然后是我最后一次,这意味着什么都没有
如果我打印$meta\\u value=get\\u post\\u meta($post\\u id,$meta\\u key,true);
然后它会返回一个空值,这样我就可以
/* If a new meta value was added and there was no previous value, add it. */
elseif ( current_user_can( \'add_post_meta\', $post_id, $meta_key ) && $new_meta_value && \'\' == $meta_value )
{
//{add_post_meta( $post_id, $meta_key, $new_meta_value, true );
//echo \'<br /> c est une nouvelle meta value <br />\'; exit();
echo \'<br />je suis dans add <br />\';
}
但不是的
我只是不明白为什么只加下划线会带来麻烦
提前感谢您的帮助
@toscho,很抱歉,我不太明白如何更新我的问题,但看起来我发现了。。谢谢你,也很抱歉我太鲁莽了