在 wordpress 网站中,我有这个页面结构:
/posts
/another-page/posts
基本上它们是列出不同帖子的两个不同页面,即使名称(帖子)相同。这两个页面应该使用不同的模板。对于第一个“帖子”页面,我只创建了一个名为 page-posts.php 的文件,它是自动选择的。如何为其他“帖子”页面做同样的事情?
是创建模板并从管理页面的下拉列表中手动选择它的唯一解决方案吗?有没有办法在不影响url的情况下改变slug?
在 wordpress 网站中,我有这个页面结构:
/posts
/another-page/posts
基本上它们是列出不同帖子的两个不同页面,即使名称(帖子)相同。这两个页面应该使用不同的模板。对于第一个“帖子”页面,我只创建了一个名为 page-posts.php 的文件,它是自动选择的。如何为其他“帖子”页面做同样的事情?
是创建模板并从管理页面的下拉列表中手动选择它的唯一解决方案吗?有没有办法在不影响url的情况下改变slug?
您可以为每个页面创建两个名为 page-{id}.php 的模板文件。这将为您处理两个页面。
每个页面的 ID 都是唯一的。因此,当您从 WP-Admin 区域中选择编辑时,查看 URL,您可以找到 ID。
/wp-admin/post.php?post=6163&action=edit
对于此页面,我的页面 ID 为6163。所以模板名称将是6163 .php 页。
干杯
您可以尝试连接到页面模板操作,检查您的自定义 url 结构,如果存在,则输出您的自定义模板。
add_filter( 'page_template', 'custom_page_template' );
function custom_page_template( $page_template ) {
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if ( false !== strpos( $url, '/another-page/posts' ) ) {
$page_template = dirname( __FILE__ ) . '/path_to_my_template.php';
}
return $page_template;
}