我想我会在互联网上找到我的问题的答案,但我没能找到。这不是一个大问题,但由于这是我的第一个插件,我想在提交之前确保一切正常。
我所做的是根据管理员从仪表板的设置面板中选择的值添加导航菜单的链接。我在自定义javascript中访问db,将数据添加到表中(在管理仪表板中),然后使用“wp\\u nav\\u menu\\u items”过滤器在另一个php脚本中获取该数据。
我用过
wp_localize_script( \'my-ajax-request\', \'accessDB\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
掌握admin-ajax.php
路径然后,我将ajax调用发送到accessDB.ajaxurl
. 这部分工作正常。我认为这是在Wordpress插件中进行ajax调用的正确方法。如果没有,请纠正我。第二部分是我必须从db中获取值的地方。这是我在wordpress过滤器挂钩中需要的值wp_nav_menu_items
. 事情是这样的:
function add_custom_menu_link($items, $args) {
global $wpdb;
$row = $wpdb->get_row("SELECT * FROM " . $wpdb->prefix . "custom_table");
if (count($row) > 0) {
return $items . "<li class=\'menu-item\'><a href=\'" . $row->url . "\' target=\'_blank\'>Custom Link</li>";
} else {
return $items;
}
}
add_filter(\'wp_nav_menu_items\', \'add_custom_menu_link\', 10, 2);
所以我的问题是,我的做法是否正确,还是必须使用cURL来获取数据admin-ajax.php
? 或者我还错过了其他什么方式?当做