要获取要存储在插件选项中的页面ID的页面下拉列表

时间:2016-12-30 作者:Rikki B

我需要在下拉列表中获得所有页面的列表,这样我就可以获得要存储在插件选项中的所选页面的页面id。

现在我有:

?>
    <input name=\'wpplf23_plugin_options[thankyou_page]\' type=\'number\' value=\'<?php if ( ( isset( $options[\'thankyou_page\'] ) ) ) { echo $options[\'thankyou_page\']; } ?>\' />
<?php
只需手动存储id。

我找到了以下代码:

$args = array(
    \'depth\'                 => 0,
    \'child_of\'              => 0,
    \'selected\'              => 0,
    \'echo\'                  => 1,
    \'name\'                  => \'page_id\',
    \'id\'                    => null, // string
    \'class\'                 => null, // string
    \'show_option_none\'      => null, // string
    \'show_option_no_change\' => null, // string
    \'option_none_value\'     => null, // string
    );

    wp_dropdown_pages( $args );
但我不知道如何让它做我需要的事情。我该怎么办?

谢谢你能为我提供的任何帮助。

2 个回复
SO网友:LWS-Mo

Iam使用以下代码在插件选项页面上显示页面选择下拉菜单。

如果您选择一个页面并将其保存,下次访问选项网站时,您还将看到保存了哪个页面。(因此不再“选择页面”)

您可以使用WordPress selected()函数,您可以在此处找到更多详细信息:https://codex.wordpress.org/Function_Reference/selected

$options = get_option( \'my_settings\' ); ?>

<select name=\'my_settings[selected_page]\'>
    <option value=\'0\'><?php _e(\'Select a Page\', \'textdomain\'); ?></option>
    <?php $pages = get_pages(); ?>
    <?php foreach( $pages as $page ) { ?>
        <option value=\'<?php echo $page->ID; ?>\' <?php selected( $options[\'selected_page\'], $page->ID ); ?> ><?php echo $page->post_title; ?></option>
    <?php }; ?>
</select>
您只需获取字段的当前保存值,然后使用WPselected()函数将当前保存的值与$page->ID.

也许这可以帮助你。

SO网友:AddWeb Solution Pvt Ltd

尝试以下代码。

<select name="page"> 
    <option value=""><?php echo esc_attr( __( \'Select page\' ) ); ?></option> 
    <?php 
     $pages = get_pages(); 
     foreach ( $pages as $page ) {
       $option = \'<option value="\' . $page->ID . \'">\'.$page->post_title.\'</option>\';
       echo $option;
     }
    ?>
</select>
希望这对你有帮助。