gpt4 book ai didi

php - Uncaught Error : Cannot use object of type WP_Post as array

转载 作者:可可西里 更新时间:2023-11-01 13:39:48 26 4
gpt4 key购买 nike

我试图在我的模板文件中放置一个 WordPress 菜单。我发现使用 wp_nav_menu 不舒服,因为它输出的标记与我的静态 HTML 模板不兼容。我知道我可以只使用自定义菜单 walker 类来修改 wp_nav_menu 的标记。但相反,我只想使用菜单名称及其相应的 url 并将其放在我的模板中。为此,我使用了 this function获取菜单的所有属性/属性的数组。

这是此函数生成的代码...

我通过使用 var_dump() 找到了它。

    Array(    [0] = WP_Post Object        (            [ID] = 20            [post_author] = 1            [post_date] = 2017-07-10 11:50:32            [post_date_gmt] = 2017-07-10 10:50:32            [post_content] =             [post_title] = About            [post_excerpt] =             [post_status] = publish            [comment_status] = closed            [ping_status] = closed            [post_password] =             [post_name] = about            [to_ping] =             [pinged] =             [post_modified] = 2017-07-10 11:50:40            [post_modified_gmt] = 2017-07-10 10:50:40            [post_content_filtered] =             [post_parent] = 0            [guid] = http://localhost/mySite/?p=20            [menu_order] = 1            [post_type] = nav_menu_item            [post_mime_type] =             [comment_count] = 0            [filter] = raw            [db_id] = 20            [menu_item_parent] = 0            [object_id] = 20            [object] = custom            [type] = custom            [type_label] = Custom Link            [title] = About            [url] = #            [target] =             [attr_title] =             [description] =             [classes] = Array                (                    [0] =                 )            [xfn] =         )    [1] = WP_Post Object        (            [ID] = 21            [post_author] = 1            [post_date] = 2017-07-10 11:50:32            [post_date_gmt] = 2017-07-10 10:50:32            [post_content] =             [post_title] = Things I Can Do            [post_excerpt] =             [post_status] = publish            [comment_status] = closed            [ping_status] = closed            [post_password] =             [post_name] = things-i-can-do            [to_ping] =             [pinged] =             [post_modified] = 2017-07-10 11:50:40            [post_modified_gmt] = 2017-07-10 10:50:40            [post_content_filtered] =             [post_parent] = 0            [guid] = http://localhost/mySite/?p=21            [menu_order] = 2            [post_type] = nav_menu_item            [post_mime_type] =             [comment_count] = 0            [filter] = raw            [db_id] = 21            [menu_item_parent] = 0            [object_id] = 21            [object] = custom            [type] = custom            [type_label] = Custom Link            [title] = Things I Can Do            [url] = #            [target] =             [attr_title] =             [description] =             [classes] = Array                (                    [0] =                 )            [xfn] =         )    [2] = WP_Post Object        (            [ID] = 22            [post_author] = 1            [post_date] = 2017-07-10 11:50:32            [post_date_gmt] = 2017-07-10 10:50:32            [post_content] =             [post_title] = A Few Accomplishments            [post_excerpt] =             [post_status] = publish            [comment_status] = closed            [ping_status] = closed            [post_password] =             [post_name] = a-few-accomplishments            [to_ping] =             [pinged] =             [post_modified] = 2017-07-10 11:50:40            [post_modified_gmt] = 2017-07-10 10:50:40            [post_content_filtered] =             [post_parent] = 0            [guid] = http://localhost/mySite/?p=22            [menu_order] = 3            [post_type] = nav_menu_item            [post_mime_type] =             [comment_count] = 0            [filter] = raw            [db_id] = 22            [menu_item_parent] = 0            [object_id] = 22            [object] = custom            [type] = custom            [type_label] = Custom Link            [title] = A Few Accomplishments            [url] = #            [target] =             [attr_title] =             [description] =             [classes] = Array                (                    [0] =                 )            [xfn] =         )    [3] = WP_Post Object        (            [ID] = 23            [post_author] = 1            [post_date] = 2017-07-10 11:50:32            [post_date_gmt] = 2017-07-10 10:50:32            [post_content] =             [post_title] = Contact            [post_excerpt] =             [post_status] = publish            [comment_status] = closed            [ping_status] = closed            [post_password] =             [post_name] = contact            [to_ping] =             [pinged] =             [post_modified] = 2017-07-10 11:50:40            [post_modified_gmt] = 2017-07-10 10:50:40            [post_content_filtered] =             [post_parent] = 0            [guid] = http://localhost/mySite/?p=23            [menu_order] = 4            [post_type] = nav_menu_item            [post_mime_type] =             [comment_count] = 0            [filter] = raw            [db_id] = 23            [menu_item_parent] = 0            [object_id] = 23            [object] = custom            [type] = custom            [type_label] = Custom Link            [title] = Contact            [url] = #            [target] =             [attr_title] =             [description] =             [classes] = Array                (                    [0] =                 )            [xfn] =         ))

My intention is to get the value of 'post_title' and 'url'

How can I do that?

I am currently struggling with these lines of code

function mt_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 = mt_get_menu_items ('main_menu');
<nav id="nav">
<ul>
<?php if (isset ($menu_items) ) : ?>
<?php foreach ( (array) $menu_items as $key => $menu_item ) : ?>
<?php // $menu_item_array = get_object_vars($menu_item[$key]);
$menu_object = $menu_item[$key];
// this line is 98
?>
<li>
// this line is 101
<a href="<?php $menu_object->url; ?>" class="active"><?php $menu_object->post_title; ?></a>
</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
</nav>

这会产生此错误:

Fatal error: Uncaught Error: Cannot use object of type WP_Post as array in D:\xampp\htdocs\mySite\wp-content\themes\mySite\header.php:98

最佳答案

我要把这个答案贴在这里以供引用...

使用foreach 循环

foreach ($originalArray as $key => $data) {
$post_date = $data->post_date; // 2017-07-10 11:50:32
}

因为要访问对象内部的数据,请使用->

例如:$data['post_date']$data->post_date

关于php - Uncaught Error : Cannot use object of type WP_Post as array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45018459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com