扩展基础 Walker 类时,我需要扩展 walk()
方法。
但是,调用父 walk()
方法不会产生任何结果。
这些是我尝试过的方法:
public function walk($elements, $max_depth) {
parent::walk($elements, $max_depth);
}
public function walk($elements, $max_depth) {
$parent_class=get_parent_class($this);
$args = array($elements, $max_depth);
call_user_func_array(array($parent_class, 'walk'), $args);
}
在我看来,一旦我覆盖了
walk()
事情就会中断。这个方法应该返回一些特定的值吗?
我应该以不同的方式调用父方法吗?
最佳答案
Walker::walk
将返回遍历操作产生的字符串。
您将获得的是使用 Walker::display_element
、 Walker::start_lvl
、 Walker::start_el
等方法创建的文本...
您将从父方法中获得的 HTML 代码可能很难在第二次以正确的方式进行修改,但如果您真的想这样做:
public function walk($elements, $max_depth) {
$html = parent::walk($elements, $max_depth);
/* Do something with the HTML output */
return $html;
}
关于php - Wordpress walker 调用父 walk() 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37321547/