我刚刚开始使用自定义帖子类型和元字段/数据。我可以让自定义的帖子和元字段出现。这根本救不了你。我一直在盯着代码,没完没了地阅读,但什么都没有告诉我出了什么问题。我希望有新的视角来看看你们的想法。一旦我弄明白了这一点,我确信我将能够扩展这些功能的使用。
以下是我的元框的代码:
/*Custom META Boxes for Ranch Custom Post Types*/
/*Ranch Location META Box*/
add_action( \'add_meta_boxes\', \'ranch_location_meta\' );
function ranch_location_meta() {
add_meta_box(
\'ranch_location_meta\',
__( \'Ranch Location\', \'myplugin_textdomain\' ),
\'ranch_location_meta_content\',
\'ranch\',
\'side\',
\'high\'
);
}
function ranch_location_meta_content( $post ) {
wp_nonce_field( plugin_basename( __FILE__ ), \'ranch_location_meta_content_nonce\' );
echo \'<label for="ranch_location"></label>\';
echo \'<input type="text" id="ranch_location" name="ranch_location" placeholder="Enter Ranch Location Here" />\';
}
add_action( \'save_post\', \'ranch_location_save\' );
function ranch_location_save( $post_id ) {
if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE )
return;
if ( !wp_verify_nonce( $_POST[\'ranch_location_meta_content_nonce\'], plugin_basename( __FILE__ ) ) )
return;
if ( \'page\' == $_POST[\'post_type\'] ) {
if ( !current_user_can( \'edit_page\', $post_id ) )
return;
} else {
if ( !current_user_can( \'edit_post\', $post_id ) )
return;
}
$ranch_location = $_POST[\'ranch_location\'];
update_post_meta( $post_id, \'ranch_location\', $ranch_location );
}
非常感谢您的帮助。谢谢
一些疑难解答的更新:
因此,我正在使用save函数进行一些故障排除。因此,我以各种方式删除了所有安全验证。首先,我在保存函数中只留下了“nonce”。。。
/*Custom META Boxes for Ranch Custom Post Types*/
/*Ranch Details META Box*/
add_action( \'add_meta_boxes\', \'ranch_location_meta\' );
function ranch_location_meta() {
add_meta_box(
\'ranch_location_meta\',
__( \'Ranch Location\', \'myplugin_textdomain\' ),
\'ranch_location_meta_content\',
\'ranch\',
\'side\',
\'high\'
);
}
function ranch_location_meta_content( $post ) {
wp_nonce_field( plugin_basename( __FILE__ ), \'ranch_location_meta_content_nonce\' );
echo \'<label for="ranch_location"></label>\';
echo \'<input type="text" id="ranch_location" name="ranch_location" placeholder="City & State" />\';
}
function ranch_location_save( $post_id ) {
if ( !wp_verify_nonce( $_POST[\'ranch_location_meta_content_nonce\'], plugin_basename( __FILE__ ) ) )
return;
$ranch_location = $_POST[\'ranch_location\'];
update_post_meta( $post_id, \'ranch_location\', $ranch_location );
}
add_action( \'save_post\', \'ranch_location_save\' );`
保存功能仍然失败。元框中没有保留任何数据。
然后我一起删除了nonce,将其保留在save函数中。。。
function ranch_location_save( $post_id ) {
if ( !wp_verify_nonce( $_POST[\'ranch_location_meta_content_nonce\'], plugin_basename( __FILE__ ) ) )
return;
$ranch_location = $_POST[\'ranch_location\'];
update_post_meta( $post_id, \'ranch_location\', $ranch_location );
}
add_action( \'save_post\', \'ranch_location_save\' );`
仍然没有保存任何内容。哦哦哦。。。这是否意味着我的问题与update\\u post\\u meta如何查找要填充的数据有关?因为其他的东西都是安全的,对吧?如果没有它,所有的都应该只是填充没有问题,对吗?如果我错了,请原谅。我有点PHP黑客