我的 Wordpress 前端有這條通知訊息:
“注意:只有變數應該通過參考傳遞......”
通知是針對這行 PHP 代碼的:
$parent_id = array_pop( wp_filter_object_list( $items, array( 'title' => $args->submenu ), 'and', 'ID' ) );
這是完整的 PHP 代碼:
add_filter( 'wp_nav_menu_objects', 'get_submenu', 10, 2 );
function get_submenu( $items, $args ) {
if ( empty($args->submenu) ) {
return $items;
}
$parent_id = array_pop( wp_filter_object_list( $items, array( 'title' => $args->submenu ), 'and', 'ID' ) );
$children = submenu_get_children_ids( $parent_id, $items );
foreach ( $items as $key => $item ) {
if ( ! in_array( $item->ID, $children ) ) {
unset($items[$key]);
}
}
return $items;
}
function submenu_get_children_ids( $id, $items ) {
$ids = wp_filter_object_list( $items, array( 'menu_item_parent' => $id ), 'and', 'ID' );
foreach ( $ids as $id ) {
$ids = array_merge( $ids, submenu_get_children_ids( $id, $items ) );
}
return $ids;
}
我沒有成功通過解決問題來洗掉通知。在此先感謝您的幫助。
uj5u.com熱心網友回復:
嘗試這個:
$filter_items = wp_filter_object_list( $items, array( 'title' => $args->submenu ), 'and', 'ID' );
$parent_id = array_pop( $filter_items );
原因是wp_filter_object_list陣列是通過參考傳遞的,因為它是由函式array_pop修改的。這意味著您需要向array_pop傳遞一個真正的變數而不是一個函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/318470.html
上一篇:帶有if陳述句的流水線函式
