0

get_sample_permalink_htmlwp-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 に答える