包含自定义选项页面会导致“页面”从仪表板菜单中消失

时间:2015-05-07 作者:Francesca

我创建了一个自定义选项页,并通过functions.php 文件当我这样做时Pages 选项将从WP仪表板中删除,就像被新选项页面覆盖一样。

这些页面仍然存在,我可以直接导航到新的页面编辑器,但无法通过仪表板中的菜单访问它。

这是我的代码,在fixtures.php

<?php
add_action( \'admin_menu\', \'fixtures_menu\' );

function fixtures_menu() {
add_menu_page( \'Fixtures Info\', \'Fixtures Info\', \'manage_options\', \'fixtures-info\', \'fixture_options\', \'../wp-content/themes/scrum-and-coke/img/infoicon.png\', 20 );
}

add_action(\'admin_init\', \'register_settings\');

function register_settings() {
register_setting(\'settings-group\',\'season\');
}

function fixture_options()
{
?>
<div class="wrap">
    <h2>Fixtures Info</h2>

    <p>This information is used on the fixtures & result page.</p>

    <form method="post" action="options.php">

        <?php settings_fields( \'settings-group\' ); ?>
        <?php do_settings_sections( \'settings-group\' ); ?>

        <p><input type="submit" value="Save" class="button-primary" /></p>
        <fieldset style="border: 1px solid #ccc !important;padding: 10px !important;"><legend>Season information</legend>
            <p><strong>Name of season/premiership:</strong><br />
                <input type="text" name="season" size="45" value="<?php echo get_option(\'season\'); ?>" />
            </p>
        </fieldset>
        </fieldset>
        <p><input type="submit" value="Save" class="button-primary" /></p>
    </form>
</div>
<?php } ?>
然后在functions.php 文件

require_once \'fixtures.php\';
知道为什么吗Pages 是否正在覆盖/从仪表板中消失?

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

查看最后一个参数add_menu_page()-- $position.

$位置(整数)(可选)此菜单应显示的菜单顺序中的位置。默认情况下,如果省略此参数,菜单将显示在菜单结构的底部。数字越大,其在菜单中的位置越低。WARNING: if two menu items use the same position attribute, one of the items may be overwritten so that only one item displays! Risk of conflict can be reduced by using decimal instead of integer values, e.g. 63.3 instead of 63 (Note: Use quotes in code, IE \'63.3\').

您选择的位置标识符——20——是“页面”菜单的位置,因此被覆盖。

使用20.1或法典建议的类似版本。至少,使用一个不属于核心的整数。

结束