1
後面我在使用wordpress walker class在菜單li
後追加模板零件,但是它將模板零件注入整個菜單結構的上方。以下是我已經有了模板零件沒有追加到菜單元素
class bt_menu_walker extends Walker_Nav_Menu
{
public function end_el(&$output, $item, $depth = 0, $args = array()) {
$dir = get_template_directory() . '/partials';
// Get file names from 'partials' directory
$scan = scandir($dir);
// Get css class names from menu elements
$classes = empty($item->classes) ? array() : (array) $item->classes;
foreach($scan as $file) {
// Only grab files
if (!is_dir("$file")) {
// Just raw filenames
$strip_extension = pathinfo($file, PATHINFO_FILENAME);
// Match css class with filenames
if ($classes[0] == $strip_extension) {
// Append template part after closing </li>
$output .= "</li>" . get_template_part('partials/' . $strip_extension);
}
}
}
}
}
正如我測試過它,當我追加其它的HTML $output
它直接顯示閉幕</li>
元素之後預期。爲什麼get_template_part
呈現在菜單結構之上?