未使用自定义分类模板文件

时间:2017-01-13 作者:thephpdev

我知道这里有无数关于这方面的问题,但所有这些问题都表明我已经在尝试做同样的事情,但我似乎遗漏了/误解了一些东西。

我正在为网站创建常见问题部分,并具有以下功能:

  • faq 自定义帖子类型faqs 用于常见问题页面分类的自定义分类法在撰写本文时都已更新到其最新版本。

    我的目标是创建一个列出所有FAQ类别的页面,然后单击该页面,以显示与FAQ类别关联的所有FAQ页面。

    我已经创建了文件archive-faq.php 尝试列出FAQ页面本身,但未使用该文件。

    我还创建了文件taxonomy-faqs.php, 列出分类法中的不同类别,但不使用该文件。

    我正在使用Custom Post Type UI 插件来管理自定义帖子类型和分类的创建,因为我现在有一些。

    我确实试过几次让permalinks提神。

    为了以防万一,我使用Advanced Custom Fields PRO 插件,用于管理各种字段的创建(因为此站点完全由定制页面组成,没有博客)。

    此外,如果这是相关的,我确实有一段代码,允许我从页面的URL中删除自定义帖子类型的名称:

    function remove_slug($post_link, $post) {
        if(!in_array($post->post_type, [\'availability_page\']) || \'publish\' != $post->post_status) {
            return $post_link;
        }
    
        $post_link = str_replace(\'/\' . $post->post_type . \'/\', \'/\', $post_link);
    
        return $post_link;
    }
    
    add_filter(\'post_type_link\', \'remove_slug\', 10, 3);
    
    function parse_request($query) {
        if(!$query->is_main_query() || 2 != count($query->query) || !isset($query->query[\'page\'])) {
            return;
        }
    
        if(!empty( $query->query[\'name\'])) {
            $query->set(\'post_type\', array(\'post\', \'availability_page\', \'page\'));
        }
    }
    
    add_action(\'pre_get_posts\', \'parse_request\');
    
    我对WordPress不是很熟练,但客户坚持我们在他们的网站上使用WordPress。而且,由于我已经习惯了ProcessWire(我认为这对于完全定制的网站来说是一个更实用的解决方案),我发现要适应WordPress非常固定的特性有点困难。

    因此,任何关于我创建的模板文件为什么没有被使用的指针都将不胜感激。

1 个回复
SO网友:thephpdev

我已经确定了我的错误方式,这是一个错误的配置和误解。

首先archive-{post-type}.php 未加载文件,因为自定义帖子类型的“Has Archive”选项设置为false. 我一弹它就成功了。

其次,我的印象是taxonomy-{taxonomy-name}.php 文件用于列出分类法下的术语,这是不正确的。这是专门为该分类法下的帖子使用自定义模板的。

它通常都很简单。我要是再等一会儿再问这个问题就好了。虽然有时候,当你已经对SE有问题时,试图解决它似乎会促使我在别人之前进一步解决它!

相关推荐