2013-03-11 11 views
0

Я хотел был бы переопределить get_sample_permalink_html от wp-admin/post.php. Если я изменяю файл напрямую, мое изменение работает. Однако я хотел бы сделать это более чистым способом, а это значит, что в плагине это будет надежным для будущего. Вот что я пытался, в моем файле плагина PHP:Переопределить функцию администратора Wordpress?

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

Ну, функция имеет фильтр, который вы можете использовать, чтобы не «переопределить» функцию, но манипулировать его вывод:

$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 вызовах.

+0

Замечательно, спасибо! Я не понял этот механизм фильтрации. В основном то, что я сделал, это настроить фильтр для выполнения тех же функций, что и функция по умолчанию, за исключением сокращающейся части, от которой я хотел избавиться. Не может быть оптимизирован на 100%, но он находится в wp-admin, поэтому кому это нужно;) – 2013-03-11 19:38:24

Смежные вопросы