我正在使用this来显示一些推文。
使用如图所示的覆盖过滤器here后,它会使自然发生的时间戳消失。
作者给出了一个示例,您可以使用它来覆盖默认标记,如下所示:
add_filter('latest_tweets_render_tweet', function( $html, $date, $link, array $tweet ){
$pic = $tweet['user']['profile_image_url_https'];
return '<p class="my-tweet"><img src="'.$pic.'"/>'.$html.'</p><p class="my-date"><a href="'.$link.'">'.$date.'</a></p>';
}, 10, 4 );
这是我的版本:
add_filter('latest_tweets_render_tweet', function($html){
return
'<div class="row">
<div class="small-1 columns twitter-icon-wrap">
<i class="fa fa-twitter tweet-icon fa-2x fa-pull-left"></i>
</div>
<div class="small-11 columns tweet-wrap">'.$html.'</div>
<p class="tweet-details"><a href="" target="_blank"></a></p>
</div>';
}, 10 , 1 );
如果我在函数中的$date
变量之后添加$html
,如:
add_filter('latest_tweets_render_tweet', function($html, $date)
然后我收到警告:
Warning: Missing argument 2 for ******\******\Extras\{closure}(), called in /srv/www/*********/current/web/wp/wp-includes/plugin.php on line 235 and defined in /srv/www/*******/current/web/app/themes/*********/lib/extras.php on line 144
第144行是add_filter('latest_tweets_render_tweet', function($html)
如果我随后将$date
变量添加到返回的HTML中,忽略警告,则会出现错误:
Notice: Undefined variable: date in.....
虽然这是一个警告,但仍然没有显示日期。如何重新显示日期?
答案 0 :(得分:1)
问题是add_filter()
(1
)中的最后一个论点。此参数是number of accepted arguments。
add_filter ( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
由于您要使用2个参数,因此需要将add_filter()
的最终参数更改为2
。换句话说:
add_filter ( 'latest_tweets_render_tweet', function( $html, $date ) {}, 10, 2 );
目前还不清楚你究竟想用$date
做什么...所以我只想给你一个通用的例子:
add_filter('latest_tweets_render_tweet', function( $html, $date ){
// $html and $date are now available to you
return true; // remember to return something (likely something different than this)
}, 10, 2 ); // <-- This argument is changed to 2