web-dev-qa-db-ja.com

すべてのウィジェット出力にフィルタを追加する方法

ブラウザに送信される前にウィジェット上で実行される最後のフィルタはありますか?すべてのウィジェットのすべてのリンクにrel="nofollow"を追加するフィルタを追加したいと思います。

たとえば、テキストウィジェットにフィルタを追加できます。

add_filter('widget_text', 'xrvel_nfp_modify_nofollow');

しかし、私はすべてのウィジェットのためにすべての単一のフックを探したくありません。 (また、RSSウィジェットはフィルタを持っていません。 Tracチケット送信

4
Dan Gayle

回避策を説明する別のスレッドがここにあります。

まあ...関数が実際に "変数への取得"出力を提供していないときのおなじみのphp回避策... ob_startを使用してください: http://php.net/manual/en/function.ob-start.php 送信する前に出力をキャプチャして操作するだけです。

Stackoverflowにつながる: https://stackoverflow.com/search?q=%2Bwordpress+sidebar+%2Bob-start+

2
edelwater

出力は完全に個々のウィジェット次第です。ウィジェットのwidget()メソッドによって直接エコーされるので、それらすべてに適用される一般的なフィルタはありません。

2
wyrfel