php可以抓取网页数据吗(我想获取我的wp主菜单中的项目..)

优采云 发布时间: 2021-11-20 13:07

  php可以抓取网页数据吗(我想获取我的wp主菜单中的项目..)

  我想在我的 wp 主菜单中获取项目。我尝试了一些代码,但所有代码都只返回一个空白页。我不知道我必须使用哪种方法,也不需要在页面中收录其他页面?

  有没有办法直接从数据库中获取菜单项而不使用 wp 方法和函数?wp的表结构暂时不懂。所以我不完全知道表之间的关系。

  谢谢。

  解决方案:

  如果您知道菜单的位置 ID(通常由 functions.php 中的“register_nav_menus”声明),您可以使用以下代码片段:

  // GET ALL MENU OBJECTS AT SPECIFIED LOCATION

function yourprefix_get_menu_items($location_id){

//$locations = get_registered_nav_menus();

$menus = wp_get_nav_menus();

$menu_locations = get_nav_menu_locations();

if (isset($menu_locations[ $location_id ]) && $menu_locations[ $location_id ]!=0) {

foreach ($menus as $menu) {

if ($menu->term_id == $menu_locations[ $location_id ]) {

$menu_items = wp_get_nav_menu_items($menu);

break;

}

}

return $menu_items;

}

}

  或者更多来自代码的简短版本:

  function yourprefix_get_menu_items($menu_name){

if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {

$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );

return wp_get_nav_menu_items($menu->term_id);

}

}

  然后使用这个数组来执行你想要的所有操作,如下图:

  $menu_items = yourprefix_get_menu_items('sidebar-menu'); // replace sidebar-menu by desired location

if(isset($menu_items)){

foreach ( (array) $menu_items as $key => $menu_item ) {

...some code...

}

}

  这是所有 nav_menu 数据的链接,您可以通过 mysql 请求直接从数据库中选择这些数据:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线