2016-06-24 7 views
0

私はthis Twitterプラグインを使用しています。テンプレート内でdo_shortcode関数を使用してコンテンツを出力します。そのother notesセクション内このフィルタをwordpressで正しく使うには?

は、それは私はそれが出力私が行うとき、しかし

add_filter('latest_tweets_render_list')を使用して、リストオブジェクト内のツイートは

add_filter('latest_tweets_render_list', function(array $list){ 
return '<div>'.$list.'</div>'; 
}, 10, 1); 

私が取得するカスタムHTMLマークアップをオーバーライドすることができますと言いますarray to string conversionがあり、つぶやきは出力されないというPHP警告が表示されます。

私はプラグインのコアファイルを調べましたが、これがあります。

function latest_tweets_render_html($screen_name = '', $num = 5, $rts = true, $ats = true, $pop = 0){ 
    $items = latest_tweets_render($screen_name, $num, $rts, $ats, $pop); 
    $list = apply_filters('latest_tweets_render_list', $items, $screen_name); 
    if(is_array($list)){ 
     $list = '<ul><li>'.implode('</li><li>',$items).'</li></ul>'; 
    } 
    return 
     '<div class="latest-tweets">'. 
      apply_filters('latest_tweets_render_before', ''). 
      $list. 
      apply_filters('latest_tweets_render_after', ''). 
     '</div>'; 
} 

latest_tweet_render_listフィルタを正しく使用して、デフォルトのHTMLマークアップを上書きするにはどうすればよいですか?私はforeachループを使用しようとしましたが、それはトリックもしませんでした。プラグインファイルを避けることができれば、私はそのプラグインファイルを変更したくありません。

答えて

0

コールバックメソッドにはarrayが渡されます。単純に配列を出力することはできません(したがって、変換に関するメッセージ)。

add_filter('latest_tweets_render_list', function(array $list){ 
    $output = '<div>'; 
    foreach ($list as $l) { 
    $output .= $l; 
    } 
    $output .= '</div>'; 
    return $output; 
}, 10, 1); 

は、あなたが最初にあなたの関数の先頭にvar_dump($list)を使用することができ、あなたの$list変数の項目を参照するには、次の配列であるかに応じて、このような何かを行うことができます。

+0

私はforeachループを試したと言いましたが、私のマークアップはやや間違っていました。 – ProEvilz

+0

ああ、私はそれが働くべきだと言及するのを忘れていた:)心配なし – LeonardChallis

関連する問題