WordPress模板的自定义文章类型

问题描述:

编者注:这个问题的原标题 - “基于模板代码WordPress模板更改”WordPress模板的自定义文章类型

我有一个网页,读取变量(单字母)从网址。该页面将显示分配给该字母的自定义帖子(该字母是自定义字段)。

问题是分配给该页面的模板没有执行页面的最终呈现。
它包含以下代码:

<?php 
    $letter = $_GET['letter']; 

    /*If there is no value returned then the loop defaults to searching for items beginning with 'A'*/ 
    if ($letter=="") 
     $letter = 'A'; 

    /* The following <h1> needs to be outside of the loop */ 
?> 
    <h1>Glossary Items Listed Under Letter "<?php echo $letter ?>"</h1> 

<?php 
    $loop = new WP_Query( 
        array( 
         'post_type' => 'glossary', 
         'meta_key'=> 'first-letter', 
         'meta_value' => $letter, 
         'posts_per_page' => 10) 
        ); 
?> 

<?php while ($loop->have_posts()) : $loop->the_post(); ?> 
    <div class="glossarybody"> 
     <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2> 
    </div> 
<?php endwhile; ?> 

当该代码的页面显示正确的结果(标题的列表)的页面上,但使用插件显示模板我看到页面正在呈现与page.php
正确的模板应该是glossary-terms.php(我使用的文件名terms.php的情况下,这个词词汇尝试,所涉及的自定义文章类型的名称,是导致问题)。

如果我删除上面的代码,并让我留下了或多或少的静态页面,它有一些HTML,页眉,页脚和侧边栏,然后页面呈现使用了正确的模板。
这表明Wordpress操作中的某些内容会导致模板在初始模板的执行过程中发生变化。

我会很感激的可能是什么毛病我的设置,以及如何得到正确的模板来渲染页面的任何指针。

更新:我发现,如果我改变调用链接,我可以得到正确的模板来渲染页面。例如,如果调用链接以“.../terms?letter = A”结尾,并且我将其更改为“..../terms?letter = A /”,则该页面将使用正确的模板进行呈现。

更新:关于以前的评论。如果我将字段和调用链接的内容更改为指定字母以外的内容(如xya),那么整个过程将正常工作。所以看起来与这个自定义字段相关的东西会导致设计的模板被忽略。

+0

如果我理解这一点[食品法典文章(http://codex.wordpress.org/Function_Reference/register_post_type)正确,有没有“页面模板”自定义文章类型。在发布“词汇表”类型时,你有* Template *属性吗?快照:http://cl.ly/I2vH – brasofilo 2012-07-13 01:24:41

+0

我的道歉,但我不清楚你的问题。所以,如果这不符合标准,请原谅。模板在页面编辑器中的页面属性中设置,如快照中所示。我的是:http://skit.ch/n1f9在你引用的有关自定义帖子类型的文章中,我没有发现任何对模板的引用。谢谢。 – dorich 2012-07-13 03:15:47

Wordpress的功能没有问题。

问题的出现是因为我是用一个插件来显示正在使用的模板,看来,这个插件是故障。 查看页面源代码中的body标签可以看出正确的模板正在呈现页面。