我正尝试创建一个新的WordPress插件并设置一个“选项”页面,尽管在使我的下拉菜单的选择触发功能时遇到了一些麻烦。
这是我在选项页面中调用的功能。
我正在尝试将下拉菜单的值设置为“ 2”以运行该功能以隐藏管理工具栏。
在回显$ wp_icon时,表明正在传递1或2。 但是,当选择2时,似乎永远不会在if语句中运行该函数,而是会调用任何其他代码。
function my_plugins_options() {
if (isset($_POST['wp_icon'])) { $wp_icon = $_POST['wp_icon']; update_option('wp_icon', $wp_icon); }
$wp_icon = get_option('wp_icon');
include 'page.php';
if ($wp_icon == 2) {
function remove_toolbar_nodes($wp_admin_bar) { $wp_admin_bar->remove_node('wp-logo'); }
add_action('admin_bar_menu', 'remove_toolbar_nodes', 999);
}
}
page.php
<form method="POST">
<label for="wp_icon">WordPress Icon</label>
<select id="wp_icon" name="wp_icon">
<option value="1" <?php selected( $wp_icon, 1 ); ?>>Show</option>
<option value="2" <?php selected( $wp_icon, 2 ); ?>>Hide</option>
</select>
<input type="submit" value="Save" class="button button-primary button-large">
</form>
期望的结果是拥有它,因此将选项设置为“隐藏”时,它将传递值2,然后将WordPress图标隐藏在仪表板中。
答案 0 :(得分:0)
您创建了一个函数,但尚未调用它-已使用。
检查下面的代码是否按预期工作:
<?php
//function definition
function remove_toolbar_nodes($wp_admin_bar)
{
//just for debugiing - remove line below if success
echo '<H1>remove_toolbar_nodes executed!</h1>';
$wp_admin_bar->remove_node('wp-logo');
}
function my_plugins_options() {
if (isset($_POST['wp_icon'])) { $wp_icon = $_POST['wp_icon']; update_option('wp_icon', $wp_icon); }
$wp_icon = get_option('wp_icon');
include 'page.php';
if ($wp_icon == 2) {
//function call - requires () after the name of function;
remove_toolbar_nodes($wp_admin_bar);
add_action('admin_bar_menu', 'remove_toolbar_nodes', 999);
}
}
您应该看到从函数打印的调试信息:
remove_toolbar_nodes已执行!
您当然可以删除:)