带有wp_Dropdown_Pages的下拉菜单

时间:2020-04-06 作者:user185556

尝试创建一个下拉菜单,其中项目是给定父页面的子页面。该列表具有自动提交脚本。

我想添加一些css规则,但无法这样做。此外,每次我编辑测试代码的页面时,我都会看到下面的警告:

无法修改标题信息-标题已由发送(输出开始于/etc)

非常感谢

这是代码,不是我的:source

function dropdownbox_autosubmit() {
    wp_dropdown_pages(array(\'child_of\' => 42,\'show_option_none=Select Page\')); ?>
    <script type="text/javascript">
        var pageDropdown = document.getElementById("page_id");
        pageDropdown.onchange = onPageSelect;
        function onPageSelect() {
            if ( pageDropdown.options[pageDropdown.selectedIndex].value > 0 ) {
                location.href = "<?php echo get_option(\'home\');?>/post.php?page_id="+pageDropdown.options[pageDropdown.selectedIndex].value;
             }
         }
    </script>
<?php

}
add_shortcode( \'call_dropdownbox_autosubmit\', \'dropdownbox_autosubmit\' );

1 个回复
最合适的回答,由SO网友:HU ist Sebastian 整理而成

首先,我认为你的论点有错误。应该是这样的\'show_option_none\' => \'Select Page\', 不\'show_option_none=Select Page\'.

其次:短代码是在帖子/页面/任何内容中被替换的东西。这意味着短代码的内容必须returned. 你直接echo 这将导致管理中出现错误消息。

将功能更改为return 代码,而不是回显它。这个wp_dropdown_pages 函数有一个方便的参数:“echo”。

function dropdownbox_autosubmit($atts = array()) {
    if(isset($atts[\'child_of\'])){
         $childof = (int)$atts[\'child_of\'];
    } else {
         $childof = 42;
    }
    $my_dropdown = wp_dropdown_pages(array(\'child_of\' => $childof,\'show_option_none\'=> \'Select Page\',\'echo\' => false));
    $my_dropdown.=\'<script type="text/javascript">\';
    $my_dropdown.=\'    var pageDropdown = document.getElementById("page_id");\';
    $my_dropdown.=\'    pageDropdown.onchange = onPageSelect;\';
    $my_dropdown.=\'    function onPageSelect() {\';
    $my_dropdown.=\'        if ( pageDropdown.options[pageDropdown.selectedIndex].value > 0 ) {\';
    $my_dropdown.=\'            location.href = \'.get_home_url().\'?p="+pageDropdown.options[pageDropdown.selectedIndex].value;\';
    $my_dropdown.=\'         }\';
    $my_dropdown.=\'     }\';
    $my_dropdown.=\'</script>\';

    return $my_dropdown;
}
add_shortcode( \'call_dropdownbox_autosubmit\', \'dropdownbox_autosubmit\' );
您可以继续使用以下短代码:[call_dropdownbox_autosubmit]. 我还做了一些更改,以便您可以指定下拉列表中的子项应该位于哪个页面。您可以像这样使用属性的child\\u:

[call_dropdownbox_autosubmit childof=42]
快乐的编码!

相关推荐

使用wp_Dropdown_Categories($args)的输出

请温柔点,我对所有这些编码都是新手!我终于找到了如何获得前端下拉字段,允许我从EDD类别中进行选择(我从Codex中获得):<div class=\"gallery-row\"> <li id=\"categories\"> <h2><?php _e( \'Categories:\' ); ?></h2> <form id=\"category-select\" class=\"category-