保存wp_Dropdown_Pages的值

时间:2015-11-27 作者:Interactive

我创建了一个wp_dropdown_pages 基于WordPress codex page

global $post;
$args = array(
        \'date_format\'  => get_option(\'date_format\'),
        \'depth\'        => 0,
        \'echo\'         => 1,
        \'post_type\'    => \'page\',
        \'post_status\'  => \'publish\',
        \'sort_column\'  => \'menu_order, post_title\',
        \'sort_order\'   => \'ASC\',
        \'value_field\'  => \'post_title\');
wp_dropdown_pages($args);
这将显示下拉列表及其所有页面。

我有两个问题<主要问题是我不知道如何将此保存到数据库中<我习惯这样做:

update_post_meta($post->ID, \'url\', $_POST[\'url\']);
但这行不通。

第二个问题是,我想选择保存在数据库中的选项。因此,如果保存了一个页面,它应该告诉我保存了哪个页面。

希望有人能启发我。请分享这是如何工作的,而不仅仅是一个解决方案,以便我能够理解……:-)

M

1 个回复
SO网友:Alecia

对于问题的第二部分:在args变量中,可以设置selected 参数设置为数据库中保存的任何内容。有关更多详细信息,请参阅法典here.

我目前正在处理同一个问题,一旦我弄清楚了一切,我会更新并澄清。

EDIT : 可以我做到了。

以下是我的保存功能:

function my_custom_meta_save( $post_id ) {

// Checks save status
$is_autosave = wp_is_post_autosave( $post_id );
$is_revision = wp_is_post_revision( $post_id );
$is_valid_nonce = ( isset( $_POST[ \'my_custom_nonce\' ] ) && wp_verify_nonce( $_POST[ \'my_custom_nonce\' ], basename( __FILE__ ) ) ) ? \'true\' : \'false\';

// Exits script depending on save status
if ($is_autosave || $is_revision || !$is_valid_nonce ) {
    return;
}


// Checks for input and sanitizes/saves if needed
if ( isset( $_POST[ \'meta_key\' ] ) ) {
    update_post_meta( $post_id, \'meta_key\', $_POST[ \'meta_key\' ] );
}

}
add_action( \'save_post\', \'my_custom_meta_save\' )
Annnnd这是我的回调函数:

function my_custom_meta_callback() {
// Get the stored value from the database
global $post;
$meta = get_post_meta( $post->ID, \'sos_internal_gallery\', true);

// TO DO: Exclude galleries that are already being displayed elsewhere
$args = array(
    \'echo\'                  => true,
    \'name\'                  => \'sos_internal_gallery\',
    \'id\'                    => \'sos_internal_gallery\',
    \'show_option_none\'      => \'Select a slider\',
    \'post_type\'             => \'sosslider\',
    \'sort_column\'           => \'post_title\',
    \'selected\'              => $meta
);

// Create drop down that lists all published sliders
wp_dropdown_pages( $args );
}
希望这有帮助!我只花了一整天就弄明白了。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请