Questions tagged «get-template-part»

这是一个WordPress核心功能,可将模板部分加载到主题模板中。它使主题易于重用代码部分,例如分页,标题图像,菜单等。

10
将变量传递给get_template_part
该WP食品法典委员会说,要做到这一点: // You wish to make $my_var available to the template part at `content-part.php` set_query_var( 'my_var', $my_var ); get_template_part( 'content', 'part' ); 但是,如何echo $my_var在模板部分内部?get_query_var($my_var)对我不起作用。 我已经看到大量建议locate_template代替使用。那是最好的方法吗?

6
通过locate_template传递变量
虽然我通常使用include或单独使用require它们来节省长期代码维护,但我已经开始使用get_template_part,locate_template因为使用内置WordPress始终是最好的方法。 我的问题是您应该能够将变量传递给get_template_partor 的结果locate_template吗? <?php $var = get_option( 'my-custom-option' ); get_template_part( 'custom-template-part' ); ?> 在上面的代码中,$var将在自定义模板中打印,但该变量似乎无效。我是否缺少某些东西,或者这是预期的行为? 我发现它们没有通过上面的实例或使用locate_template时通过 <?php locate_template( 'custom-template-part.php', true ); ?>


3
如何使用get_template_part()?
有人可以向我解释此功能的工作原理吗?我知道它的作用,但是当我查看二十个模板中的源代码时,我不知道如何在一个单独的loop.php中收集所有循环(我也看到了该文件)。 那么,例如,如何抽象出模板的某个公共部分,然后在其他模板之间重用呢?

3
get_template_part与主题中的动作挂钩
在我看来,这两种方式都为最终用户提供了修改主题的机会,而无需实际编辑主题文件(通过子主题)。 我的问题是,一种方法优于另一种方法。 例如,以我现在正在研究的主题为例。我试图决定是否要使用钩子的模板部分。 <?php get_template_part('before_sitecontainer' ); ?> <div id="sitecontainer" class="sitecontainer" <?php //closed in footer ?>> <?php get_template_part( 'before_topcontainer' ); ?> <div id="topcontainer "> <?php get_template_part( 'before_topedge_navigation' ); ?> <?php get_template_part( 'topedge_navigation' ); ?> <?php get_template_part( 'before_site_header' ); ?> <?php get_template_part( 'site_header' ); ?> <?php get_template_part( 'before_second_navigation' ); ?> <?php get_template_part( …

3
如何在插件中使用get_template_part()包含文件?
一个非常简单的问题可能是,但是我很挣扎。在主题开发中,我工作了get_template_part()很多次,并且了解了它的基础知识。但是当我开发一个插件时,我想知道如何使用它显示一些错误: 注意:使用未定义的常量STYLESHEETPATH-...\wp-includes\template.php在第407行假定为'STYLESHEETPATH' 和 注意:使用未定义的常量TEMPLATEPATH-...\wp-includes\template.php在第410行假定为“ TEMPLATEPATH” 谷歌搜索问题显示了支持修复程序: 用于get_template_part()插件-WordPress支持 但这似乎是一个巨大的解决方法-我对此表示怀疑。我认为应该没那么复杂。我检查了此WPSE答案并找到以下代码行: if ( '' === locate_template( 'loop-mycustomposttype.php', true, false ) ) include( 'loop-mycustomposttype.php' ); 哪里有PHP include()函数。根据我的WordPress知识,我学会了优先get_template_part()于PHP include()。那我该如何get_template_part()在插件中使用简单的插件呢? 我没有使用任何循环或其他东西,我只是将我的插件代码分离(或可以说是将其组织)到不同的文件中,以便在某些情况下,我会简单地将其注释掉,以删除不必要的地方。我试过了: get_template_part( 'my', 'special-admin' ); 然后在错误之后,将其更改为: get_template_part( 'my', 'specialadmin' ); 但您知道那不是问题。我在本地服务器上,使用WAMP。

4
是否可以覆盖get_template_part()的结果?
我正在研究一个子主题,我强烈不希望覆盖主模板文件,以保持子主题的简单性,并尽可能减少代码量和维护时间。 在循环中,父主题中的index.php模板使用: get_template_part( 'content' ); 它将引入content.php,我希望它的行为更相似get_template_part( 'content', get_post_format() );或相似,以便引入不同的模板,例如content-aside.php等,而不在子主题中创建index.php来覆盖父级进行单行更改。 get_template_part() 由组成: function get_template_part( $slug, $name = null ) { do_action( "get_template_part_{$slug}", $slug, $name ); $templates = array(); $name = (string) $name; if ( '' !== $name ) $templates[] = "{$slug}-{$name}.php"; $templates[] = "{$slug}.php"; locate_template($templates, true, false); } 所以有一个动作,在我的例子中叫做 get_template_part_content 我可以使用以下类似的动作: …

1
我们应该在函数文件中使用get_template_part()而不是include_once吗?
我正在使用theme-check插件来检查我的主题是否有错误和建议,我在诸如header.php和index.php之类的主题文件中使用get_template_part(),但在functions.php中,我正在使用include_once()theme-检查不是指向这些,而是​​指向在functions.php中包含的widgets.php文件中使用的include_once 我的问题是我们应该使用get_template_part()而不是所有include_once()和include()还是仅将其用于获取频繁使用的标记?我知道只建议使用get_template_part(),但我想遵循最佳实践和建议。 提前致谢。

2
在get_template_part循环中使用自定义WP_Query
我有一个自定义帖子类型的查询: <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $books = new WP_Query(array( 'post_type' => 'wiki', 'posts_per_page' => '50', 'paged' => $paged )); ?> 我想使用loop-books.php遍历这些帖子: <?php get_template_part( 'loop', 'books' ); ?> 在loop-books.php内部,我有这些内容,就像常规的loop.php一样,我只是更改了have_posts和the_post函数以与$ books查询一起使用: <?php if ( $books->have_posts() ) : ?> <?php while ($books->have_posts()) : $books->the_post(); ?> <?php the_title(); ?><br/> <?php …

4
模板零件名称是否有变量?
您使用get_template_part()(或locate_template())称为模板的人有一种方法可以知道您所使用的模板。 例如,如果您get_template_part('loop','archive');从archive.php 然后在您的loop-archive.php文件中工作。有没有一种方法可以定义一个具有当前模板部件名称的变量$template = 'loop-archive'。更好的是,也许分为两部分,分别是“循环”和“归档”,但我可以通过一些字符串拆分来做到这一点。 问题#10537似乎有点相关,但似乎没有涵盖模板部分。

2
如何使get_template_part始终先检查子主题?
如何强制WP在运行时始终先检查子主题文件夹get_template_part? 示例:子主题加载get_template_part('content', 'inventory')到中single.php。因为所有子主题(还有很多)共享相同的通用清单模板库,所以该文件content-inventory.php位于父主题中。到目前为止,一切都很好。 我想在上述清单模板中添加一小部分,这对于每个子主题都是唯一的。添加get_template_part('content', 'inventory-special')到content-inventory.php不会首先检查孩子的主题目录。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.