我的模板文件位于/parts/template.php其中包含一个后列表代码,如,
echo get_the_title(); //same lines with my_render_function
我正在使用它
archive.php 用这条线。
while ( have_posts() ) : the_post();
get_template_part(\'template\');
endwhile;
但现在我写了一个
widget 和a
shortcode. 使用名为
shared_listing()function shared_listing(){
$posts=get_posts();
my_render_function($posts);
}
function my_render_function($posts){
foreach($posts as $post) {
echo get_the_title($post->ID); //same lines with template.php except $post->ID
}
}
所以,我找到了一个解决方案。我删除了
template.php 和已更改
archive.php 对此。
if ( have_posts() ) :
my_render_function($posts);
endif;
现在,我的档案。php、my widget和my shortcode使用与my\\u render\\u function()相同的模板。我创建了一个名为my\\u render\\u function的文件。在添加了函数行之后,我将其复制到parts文件夹中。
我并没有在widget和shortcode中使用这行代码,而是更改了模板来呈现函数,因为我还需要pass$posts和一些其他变量。因为design$post\\u count是其中之一。如果在前端代码输入点不使用循环,那么它就没有任何意义。我需要把它做好。当然不是黑客。
setup_postdata( $post );
get_template_part(\'template\');
现在我的问题是:;
一开始我用的是get_the_title(); at模板。php和get_the_title($post->ID); 在小部件和短代码循环中。但现在我在所有这些网站上都使用了get\\u标题($post->ID)。
1-这会使我的系统更慢吗
wp中有一个对象缓存机制,所以我相信它不会影响
一开始我用的是get_template_part() 存档时。php与have_posts() 和位于shortcode和widget的foreach渲染函数。现在我正在使用include() (仅在function.php中使用一次)和foreach render function 所有这些。
2-这是正确的最佳方式吗?或者是否有其他逻辑和高性能的解决方案可以做到这一点
对不起,我的英语很差,谢谢你的阅读。