gpt4 book ai didi

php - 从管理页面找出用于页面的 Wordpress 模板

转载 作者:可可西里 更新时间:2023-10-31 22:15:10 25 4
gpt4 key购买 nike

我正在尝试检索仪表板中“编辑页面”页面上使用的模板的文件名/路径。

类似于 wp-includes/template-loader.php ( source ) 在前端所做的事情:找出要呈现的模板。

不幸的是,像 is_front_page() 这样的表达式 - Wordpress 的 template-loader.php 用来确定它是否应该使用 get_front_page_template() - 在管理页面上无法正常工作。这是意料之中的,因为这些表达式使用全局 $wp_query 对象,而不是当前查询。

到目前为止我尝试了什么:

在管理页面内运行一个 post 循环

$args = array(
'p' => get_the_ID(),
'post_type' => 'any'
);

$query = new \WP_Query($args);

if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>

<?= the_title(); ?><br>
Is front page: <?= is_front_page() ? 'true' : 'false' ?>

<?php endwhile; endif; ?>

显示:

Home

Is front page: false

使用 get_post_meta

<?= get_post_meta(get_the_ID(), '_wp_page_template', true); ?>

显示:

default

...这对于主页上的 front-page.php 和另一个默认页面上的 page.php 是相同的,所以这对我没有帮助。

简而言之

当我编辑“主页”页面时,我想要获取的是 front-page.php。或 custom-template.php 当我使用选定的自定义模板编辑某些页面时。或 about-page.php 当我编辑名为“关于”的页面时。如何获取正确的文件名或路径?

最佳答案

如果您的具体问题出在主页上,您可以结合使用 get_page_template() 并将已编辑页面的 ID 与 get_option('page_on_front') 进行比较(见 WordPress option reference )。还有一个选项,show_on_front,它指示首页是显示帖子还是静态页面。

也许这有帮助?我不知道是否还有其他边缘情况会使用不同的模板...

关于php - 从管理页面找出用于页面的 Wordpress 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45965531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com