4

wordpress で SEO タイトルを作成するプラグインをオーバーライドしようとしています。フィルターは仕事をしますが、タイトルを動的に作成する必要があります。そこで、タイトルを作成してから匿名関数に渡します。タイトルを作成する別の関数を持つことができます。これは間違いなくきれいになります...

これは機能します

function seo_function(){

 add_filter('wpseo_title', function(){
        return 'test seo title';
    });

}

これはしません

function seo_function(){

//create title above
$title="test seo title";


    add_filter('wpseo_title', function($title){
        return $title;
    });

}

助けてくれてありがとう

ジョー

匿名関数の例を使用しなくても、これは機能しますが、変数を渡すことはできません。コードを複製してタイトルを作成する必要があります。

関数 seo_function(){

//create title above
$title="test seo title";


    add_filter('wpseo_title', 'seo_title');

}

function seo_title(){

$title="test";

return $title;

}
4

2 に答える 2

13

use次のキーワードを使用して変数をクロージャ スコープに渡します。

$new_title = "test seo title";

add_filter( 'wpseo_title', function( $arg ) use ( $new_title ) {
    return $new_title;
});

function($arg) の引数は、コードではなく、他のプラグインなどの apply_filters() 呼び出しによって送信されます。

関連項目:フィルター関数とアクション関数にパラメーターを渡す

于 2013-07-28T12:30:59.650 に答える
0

カスタム フィルターに指定できるパラメーターは、フィルターと、フィルターが Wordpress で機能する方法によって定義されます。Wordpress のフィルターに関するドキュメントについては、http://codex.wordpress.org/Plugin_API/Filter_Referenceを参照してください。

また、これを試すのはあなたが初めてではないので、おそらくこれが役立つでしょう(テストするためのWordpressインストールがないため): http://wordpress.org/support/topic/change-the-title-dynamically

うまくいかない場合は、使用しているプラ​​グインのフォーラムを使用するか、開発者に直接連絡することをお勧めします。

于 2013-07-28T12:22:00.177 に答える