nanbu さま
返信ありがとうございます。
add_filter("usces_filter_widget_post", "hogehoge_widget_post", 10, 3);
こんな具合です。
apply_filters( 'usces_filter_widget_post', $list, $post, $slug);
とあるので、渡されるのは3個…ですよね
念のため確認ですが、ここで渡す $post は
$infolist->the_post();
の記事ですよね?
function hogehoge_widget_post() {
$args = func_get_args();
list($list, $post, $slug) = $args;
var_dump($post);
}
こんなことすると、var_dumpの結果がnull になります。
独自のフィルタ内で、
global $post;
してやれば取得はでき、ちゃんと動きますが…
$infolist->the_post() の後、
$post = $infolist->post; // ローカル変数として
あるいは apply_filters を
$li .= apply_filters( 'usces_filter_widget_post', $list, $infolist->post, $slug);
あるいは、前回の書込通り、usces_list_post() 内で
global $post; // グローバルを使う
することで、期待通り(usces_filter_widget_postの仕様通り?)の動きをしています。
フィルタフックが渡してくれる(はず)なら、
そちらを使うべきだろうと思うので…