PHP 输出菜单项链接:要转换为 json 的数组
Posted
技术标签:
【中文标题】PHP 输出菜单项链接:要转换为 json 的数组【英文标题】:PHP output menu items links: array to convert to json 【发布时间】:2021-07-18 23:51:51 【问题描述】:我正在尝试从 wp_head 中的自定义导航输出所有链接的列表。我的代码有点工作,但出于某种原因,输出的链接看起来很有趣。
我期待收到https://example.com/sample-page/
我得到:\ / \ / 作为链接而不是://
我是否遗漏了一些明显的东西?
我的代码:
//OUTPUT MENU
function get_nav_items()
$menu_slug_to_retrieve = 'my-custom-menu';
$locations = get_nav_menu_locations();
$menu = wp_get_nav_menu_object( $locations[ $menu_slug_to_retrieve ] );
$menu_items = wp_get_nav_menu_items( $menu->term_id );
$menu_items_json = array(); // Prepare the array to convert to json
// Loop it
if ( $menu_items )
foreach ( $menu_items as $item )
$menu_items_json[] = array( 'url' => $item->url );
$html = sprintf(
'<script type="application/ld+json" id="custom-json">%s</script>',
json_encode( $menu_items_json )
);
echo $html;
add_action( 'wp_head', 'get_nav_items' );
【问题讨论】:
【参考方案1】:这是非常预期的输出。 json_encode
所做的是,它通过添加反斜杠来转义所有正斜杠。如果您将其包含在 script
元素中,这会很方便。如果你不想要转义的正斜杠,你可以通过添加这个标志告诉 php:
json_encode($str, JSON_UNESCAPED_SLASHES);
【讨论】:
以上是关于PHP 输出菜单项链接:要转换为 json 的数组的主要内容,如果未能解决你的问题,请参考以下文章
php获取服务器端数据得到json后转换数组始终为null是怎么回事