我想从wp-admin / post.php覆盖get_sample_permalink_html
。如果我直接修改文件,我的更改将起作用。但是我想以更干净的方式做到这一点,这意味着在一个插件中,这样它可以面向未来。以下是我在PHP插件文件中尝试过的内容:
add_filter('get_sample_permalink_html', 'custom_get_sample_permalink_html', 1, 3);
function custom_get_sample_permalink_html( $id, $new_title = null, $new_slug = null ) {
(...)
}
它会在不显示错误的情况下中断页面,我该怎么办?
答案 0 :(得分:0)
好吧,该函数有一个可以使用的过滤器,不是“覆盖”该函数,而是操纵它的输出:
$return = apply_filters('get_sample_permalink_html', $return, $id, $new_title, $new_slug);
所以,你需要以下内容:
add_filter( 'get_sample_permalink_html', 'custom_get_sample_permalink_html', 15, 4 );
function custom_get_sample_permalink_html( $return, $id, $new_title, $new_slug )
{
// Manipulate the $return as you wish, using your own stuff and the passed variables:
// $id, $new_title, $new_slug
return $return;
}
15
是优先级,意味着:“在最后可能的位置执行”,如有必要,可以增加它。
4
是函数接收的参数数量,在原始apply_filters
调用中进行了检查。