Php 在功能范围中访问$post
在这种情况下,我需要使用foreach循环遍历循环之外的帖子 下面的循环工作得很好,但是,当我将几乎相同的代码迁移到函数中以保持代码干燥时,会出现问题:模板代码重复某些$post元素,如缩略图、标题等,同时返回其他$post元素(如摘录)的预期信息 关于如何在函数内或模板代码中使用$post,这里显然有一些我遗漏或误解的地方,但是,我无法理解这一点 任何澄清都很好 原始代码: $posts=get_字段“特色项目”、“用户”.$post->post_作者; 如果$posts{ $current_index=0; $grid_columns=3; foreach$posts作为$post{ 如果0==$当前索引%$网格列{ 回响 } 设置\u postdata$post; 获取_模板_零件'零件/回路','自定义网格'; 如果0==$当前索引+1%$网格列 ||$current_index+1==3{ 回响 } $current_index++; } wp_重置_postdata; } 重构为函数: 函数获取网格{ $posts=get_字段“特色项目”、“用户”。get_post->post_作者; 如果$posts{ $current_index=0; $grid_columns=3; foreach$posts作为$post{ 如果0==$当前索引%$网格列{ 回响 } 设置\u postdata$post; 获取_模板_零件'零件/回路','自定义网格'; 如果0==$当前索引+1%$网格列 ||$current_index+1==3{ 回响 } $current_index++; } wp_重置_postdata; } } 循环自定义网格模板代码Php 在功能范围中访问$post,php,wordpress,loops,templates,Php,Wordpress,Loops,Templates,在这种情况下,我需要使用foreach循环遍历循环之外的帖子 下面的循环工作得很好,但是,当我将几乎相同的代码迁移到函数中以保持代码干燥时,会出现问题:模板代码重复某些$post元素,如缩略图、标题等,同时返回其他$post元素(如摘录)的预期信息 关于如何在函数内或模板代码中使用$post,这里显然有一些我遗漏或误解的地方,但是,我无法理解这一点 任何澄清都很好 原始代码: $posts=get_字段“特色项目”、“用户”.$post->post_作者; 如果$posts{ $current
当循环位于函数内部时,其他函数不会收到预期的$post。$post变量仅存在于该函数中 解决此问题的一个简单方法是将$post变量放入全局范围:
function get_grid(){
global $post;
$posts = get_field( 'featured_projects', 'user_'.get_post()->post_author );
/* all the other code that works fine outside
a function should work fine inside too now */
}