自定义帖子类型的Wordpress模板

时间:2012-07-12 17:28:10

标签: wordpress templates

  

编者注:此问题的原始标题 - " 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操作中的某些东西导致模板在初始模板的执行中发生变化。

我很感激任何有关我的设置可能出错的指针,以及如何获取正确的模板来呈现页面。

更新:我发现如果我更改了调用链接,我可以获得正确的模板来呈现页面。例如,如果呼叫链接以&#34; ... / terms?letter = A&#34;结束?然后我将其更改为&#34; .... / terms?letter = A /&#34;然后使用正确的模板呈现页面。

更新:关于之前的评论。如果我将字段的内容和调用链接更改为指定字母之外的其他内容,例如xya,则整个过程正常工作。因此,与此自定义字段关联的内容似乎会导致设计模板被忽略。

1 个答案:

答案 0 :(得分:0)

Wordpress的功能没有问题。

问题出现了,因为我使用插件来显示正在使用的模板,并且看起来该插件出现故障。 查看页面源中的body标签显示正确的模板正在呈现页面。