未显示单页.php模板文件名

时间:2019-05-29 作者:sergekol

我正在开发一个主题,我注意到

get_post_meta($post->ID, \'_wp_page_template\', true);
返回的静态页面。在静态页面上查询时返回php(如预期),但在单个博客帖子页面上查询时不返回任何内容(预期为“single post.php”)。

我只有一个帖子。php文件设置和工作,显示的内容等,但由于某些原因,我无法在此页面上获取模板文件名。它在静态页面上工作得很好。知道为什么吗?

2 个回复
SO网友:Jacob Peattie

我正在使用部分中的模板文件名加载相应的css文件。对于静态页面。php我正在加载静态页面。css,类似于单篇文章。php我想加载单个帖子。css。如上所述,它在我的静态页面上运行良好,但在单个博客帖子页面上返回零。

这并不是正确的方法。首先,你不应该在<head> 直接地相反,您应该将函数文件中的样式“排队”,as outlined in the Theme Developer Handbook.

当您这样做时,您可以使用Conditional Tags 确定当前正在查看的内容,并将适当的样式排入队列。

例如,如果只想加载单个帖子的样式,可以使用is_singular( \'post\' )., 而对于自定义页面模板,您将使用is_page_template( \'static-page.php\' );.

SO网友:sergekol

我今天的工作是按照Jacob之前的建议升级我的主题。我从标题中删除了所有样式表链接。并将它们放入函数中。php。

无条件样式表和使用is\\u page\\u template()连接的样式表可以正常工作。

但是,使用is\\u category、is\\u标记等连接的样式表不起作用。

代码如下:

function add_styles () {

    // Styles for all pages - work just fine

        wp_enqueue_style( \'normalize\', get_template_directory_uri().\'/css/normalize.css\', false, \'1\', \'all\' );
        wp_enqueue_style( \'main\', get_template_directory_uri().\'/css/main.css\', false, \'1\', \'all\' );
        wp_enqueue_style( \'header\', get_template_directory_uri().\'/css/header.css\', false, \'1\', \'all\' );
        wp_enqueue_style( \'index\', get_template_directory_uri().\'/css/index.css\', false, \'1\', \'all\' );
        wp_enqueue_style( \'functions\', get_template_directory_uri().\'/css/functions.css\', false, \'1\', \'all\' );
        wp_enqueue_style( \'footer\', get_template_directory_uri().\'/css/footer.css\', false, \'1\', \'all\' );

    // Styles for custom template pages - DO NOT work

        if ( is_category() ) { wp_enqueue_style( \'category\', get_template_directory_uri().\'/css/category.css\', false, \'1\', \'all\' ); };
        if ( is_tag() ) { wp_enqueue_style( \'tag\', get_template_directory_uri().\'/css/tag.css\', false, \'1\', \'all\' ); };
        if ( is_single() ) { wp_enqueue_style( \'single\', get_template_directory_uri().\'/css/single-post.css\', false, \'1\', \'all\' ); };
        if ( is_date() ) { wp_enqueue_style( \'date\', get_template_directory_uri().\'/css/date.css\', false, \'1\', \'all\' ); };

    // Styles for static page templates - DO work

        if ( is_page_template(\'front-page.php\') ) { wp_enqueue_style( \'front-page\', get_template_directory_uri().\'/css/front-page.css\', false, \'1\', \'all\' ); };
        if ( is_page_template(\'static-page.php\') ) { wp_enqueue_style( \'static-page\', get_template_directory_uri().\'/css/static-page.css\', false, \'1\', \'all\' ); };
        if ( is_page_template(\'landing-page.php\') ) { wp_enqueue_style( \'landing-page\', get_template_directory_uri().\'/css/landing-page.css\', false, \'1\', \'all\' ); };
        if ( is_page_template(\'404.php\') ) { wp_enqueue_style( \'404\', get_template_directory_uri().\'/css/404.css\', false, \'1\', \'all\' ); };

add_action( \'wp_enqueue_scripts\', \'add_styles\' );
很明显,is\\u category、is\\u tag等不起作用。通过阅读CODEX和internet,我发现它们是通过函数调用的。php太早了。然而,我不明白如何正确地钩住它们,使它们工作。

这样做的正确方式是什么?

相关推荐

Custom term templates

所以,我在网上做了一些研究,但没有找到可靠的答案,所以我来了。我需要为特定类别创建自定义woocommerce类别页面。例如,我有一个类别叫做“Awesome”。而不是使用由短代码生成的常规类别页面[product_category category=\"something\"], 我想为自定义特定类别页面Awesome.我发现我需要编辑taxonomy-product_cat.php 但我不知道如何将其链接到名为awesome.换句话说,我正在考虑制作php文件的自定义副本,然后将其添加为主题templ