Метабокс WordPress ничего не сохраняет

У меня есть больше пользовательских метаданных в моем WordPress, и один из них ничего не сохраняет. Это код сохранения

add_action('save_post', 'save_details');
function save_details($post_id){
$slug = 'homepage';
/* check whether anything should be done */
$_POST += array("{$slug}_edit_nonce" => '');
if ( !current_user_can( 'edit_post', $post_id ) ) {
    return;
}
if ( !wp_verify_nonce( $_POST["{$slug}_edit_nonce"], plugin_basename( __FILE__ ) ) ){
    return;
}
/* Request passes all checks; update the post's metadata */
if (isset($_REQUEST['link_homepage'])) {
    update_post_meta($post_id, 'link_homepage', $_REQUEST['link_homepage']);
} 

}

Кто-нибудь может мне помочь? Спасибо!


person Adrian Axinte    schedule 31.01.2013    source источник
comment
Вы смотрели в базе данных, если там нет post_meta? Можете ли вы проверить это: print_r($_REQUEST['link_homepage']); выход(); прямо перед вашим обновлением, чтобы увидеть, выполняется ли код?   -  person Philippe Boissonneault    schedule 31.01.2013
comment
Не работает или ничего не показывает? Попробуйте в разных местах функции увидеть, где останавливается код.   -  person Philippe Boissonneault    schedule 31.01.2013
comment
У вас есть отправка homepage_edit_nonce из пользовательского мета-поля?   -  person david.binda    schedule 31.01.2013
comment
я выложил новый код   -  person Adrian Axinte    schedule 31.01.2013


Ответы (1)


Наконец-то я создал рабочий код, и после того, как я напишу в пользовательском поле в wordpress и нажму «Сохранить», он удалит его из поля textarea, но сохранит его, и он работает.

Это новый код:

<?php
// add meta box for post types
add_action("admin_init", "admin_init");   
function admin_init(){ 
    add_meta_box( 
        'settings_meta_id', 
        'Link Homepage', 
        'settings_meta', 
        'homepage', 
        'normal', 
        'high' 
    );
}    
function settings_meta( $post ){
    //global $post; 
    $values = get_post_custom( $post->ID );
    $links = isset( $values['link_homepage'] ) ? $values['link_homepage'][0] : '';
    wp_nonce_field( 'homepage_box_nonce', 'link_homepage_nonce' );
?>
<p>
    <label for="link_homepage">Link homepage:</label><br /> 
    <textarea cols="100" rows="2" name="link_homepage" style="width:98%;"><?php echo $link_homepage; ?></textarea>
</p> 
<?php }
add_action( 'save_post', 'save_custom_details' );
function save_custom_details( $post_id ) {
    global $post;   
    //skip auto save
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return $post_id;
    }
    //check for you post type only
    if( $post->post_type == "homepage" ) {
        if( isset($_POST['link_homepage']) ) { update_post_meta( $post->ID, 'link_homepage', $_POST['link_homepage'] );}

    }
}
?>

Как исправить этот БАГ, чтобы сохранить текст после сохранения?

person Adrian Axinte    schedule 31.01.2013