0

我想get_sample_permalink_html从 wp-admin/post.php 覆盖。如果我直接修改文件,我的更改将起作用。但是,我想以更简洁的方式执行此操作,这意味着在插件中,这样它就可以面向未来。这是我尝试过的,在我的 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 ) {
    (...)
}

它打破了页面而不显示错误,我该怎么办?

4

1 回答 1

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调用中检查。

于 2013-03-11T16:29:48.360 回答