Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
木材-将数据扩展到上下文(WordPress)_Wordpress_Twig_Timber - Fatal编程技术网

木材-将数据扩展到上下文(WordPress)

木材-将数据扩展到上下文(WordPress),wordpress,twig,timber,Wordpress,Twig,Timber,所以我试着让这些函数的数据对每个上下文都可用,但是我一直在研究如何实际获取数据本身,因为它是上下文的一部分 我有以下资料: add_filter( 'timber_context', 'fancySquares_get_instagram_images' ); function fancySquares_get_instagram_images( $context ) { $context['instaImages'] = []; $api = wp_remote_reques

所以我试着让这些函数的数据对每个上下文都可用,但是我一直在研究如何实际获取数据本身,因为它是上下文的一部分

我有以下资料:

add_filter( 'timber_context', 'fancySquares_get_instagram_images'  );

 function fancySquares_get_instagram_images( $context ) {

  $context['instaImages'] = [];

  $api = wp_remote_request("testUrlHere");
  $api = json_decode($api['body']);


  for($i = 0; $i < 20; $i++)
    {
      $images[$i] = [];
      $images[$i]['image'] = $api->data[$i]->images->standard_resolution->url;
      $images[$i]['url'] = $api->data[$i]->link;
      $images[$i]['likes'] = $api->data[$i]->likes->count;
    }

    return $context;

}

任何帮助都将不胜感激。谢谢大家!

以上问题的答案如下,希望这对以后的人有所帮助

您将添加过滤器:

  • 在传递给过滤器的函数中,您将把上下文变量设置为运行所有魔术的函数
  • 然后返回上下文,以便您可以自行决定在整个站点中使用它
代码示例:

add_filter( 'timber_context', 'fancySquares_show_instagram_results'  );

function fancySquares_show_instagram_results( $context ) {
    $context['fancySquaresInstagram'] = fancySquares_get_instagram();
    return $context;
}


function fancySquares_get_instagram()
{
  if(get_transient('instagram')) 
    {
        return get_transient('instagram');
    } 
    else 
    {
      $api = wp_remote_request("instagram-api-url");
      $api = json_decode($api['body']);
      $images = [];

      for($i = 0; $i < 20; $i++)
      {
        $images[$i] = [];
        $images[$i]['image'] = $api->data[$i]->images->standard_resolution->url;
        $images[$i]['url'] = $api->data[$i]->link;
        $images[$i]['likes'] = $api->data[$i]->likes->count;
      }


        set_transient('instagram', $images, 60*60*24); // expires every day
        return $images;
    }

}
或者可以打印整个内容,以便更好地了解其中的内容:

{{ fancySquaresInstagram|print_r }}

过滤器用于转换数据,您需要添加一个函数,然后添加到类似
{%set images=get\u instagram()%}
的内容中。注意
add_filter
add_function
中的第一个参数是
twig
Hey@DarkBee中可用的过滤器/函数的名称,谢谢!但我想我现在可能更困惑了。我在Twigs文档中尝试了addFunction示例,但我得到了与未定义twig相关的错误,这是因为木材吗?我也看到了扩展木材,但我无法得到返回Hi RMH的函数,似乎我对sytanx的理解是错误的。你可以找到合适的
{% for insta in fancySquaresInstagram %}

    {{insta['url']}}

  {% endfor %} 
{{ fancySquaresInstagram|print_r }}