Timber - 将数据扩展到上下文 (WordPress)
Timber - extend data to context (WordPress)
所以我试图让这个函数的数据可供每个上下文使用,但我仍然坚持如何实际获取数据本身,因为它是上下文的一部分。
我有以下内容:
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;
}
我正在尝试打印结果以确保我做对了,它 returns 一个空的 Array():
{{ instaImages|print_r}}
如有任何帮助,我们将不胜感激。谢谢!
以上问题,希望对以后的人有所帮助。
您将添加过滤器:
- 在传递给过滤器的函数中,您将 CONTEXT 变量设置为您将 运行 所有魔法
的函数
- 然后是 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;
}
}
然后您将输出:
{% for insta in fancySquaresInstagram %}
{{insta['url']}}
{% endfor %}
或者可以打印整个东西以更好地了解里面的内容:
{{ fancySquaresInstagram|print_r }}
所以我试图让这个函数的数据可供每个上下文使用,但我仍然坚持如何实际获取数据本身,因为它是上下文的一部分。
我有以下内容:
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;
}
我正在尝试打印结果以确保我做对了,它 returns 一个空的 Array():
{{ instaImages|print_r}}
如有任何帮助,我们将不胜感激。谢谢!
以上问题,希望对以后的人有所帮助。
您将添加过滤器:
- 在传递给过滤器的函数中,您将 CONTEXT 变量设置为您将 运行 所有魔法 的函数
- 然后是 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;
}
}
然后您将输出:
{% for insta in fancySquaresInstagram %}
{{insta['url']}}
{% endfor %}
或者可以打印整个东西以更好地了解里面的内容:
{{ fancySquaresInstagram|print_r }}