我正在尝试在index.php主题中使用bootstrap选项卡来显示主页面主题中的不同内容。 我已经在index.php中实现了标签,并在标签Popular中创建了名为popular-post.php的新页面。
但是,当我点击链接以显示热门内容时,我得到了
致命错误:在
中调用未定义的函数get_header()这是我的index.php
的代码 <?php get_header(); ?>
<div class="row" id="content">
<div class="col-sm-8 col-md-8 col-lg-8" id="primary">
<ul class="nav nav-tabs">
<li class="active"><a href="#">Home</a></li>
<li><a href="<?php bloginfo('template_directory'); ?>/popular-post.php">Popular</a></li>
<li><a href="#">Recientes</a></li>
</ul>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php
/* Include the Post-Format-specific template for the content.
* If you want to overload this in a child theme then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
get_template_part( 'content', get_post_format() );
?>
<?php endwhile;?>
<?php /* Pagnavi plugin support */ wp_pagenavi(); ?>
<?php else: ?>
<?php get_template_part( 'no-results', 'index' ); ?>
<?php endif; ?>
</div>
<div class="col-sm-4 col-md-4 col-lg-4" id="secondary">
<?php get_sidebar(); ?>
</div>
</div><!--/content-->
<?php get_footer(); ?>
这是popular-post.php的代码
<?php
/*
Template Name: Popular Posts
*/
?>
<?php get_header(); ?>
<div class="row" id="content">
<div class="col-sm-8 col-md-8 col-lg-8" id="primary">
<ul class="nav nav-tabs">
<li><a href="<?php bloginfo('template_directory'); ?>">Home</a></li>
<li class="active"><a href="#">Popular</a></li>
<li><a href="#">Recientes</a></li>
</ul>
<ul class="popular_posts">
<?php $pc = new WP_Query('orderby=comment_count&posts_per_page=10');
while ($pc->have_posts()) : $pc->the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
<p>Posted by <strong><?php the_author() ?></strong> with <?php comments_popup_link('No Comments;', '1 Comment', '% Comments'); ?></p></li>
<?php endwhile; ?>
</ul>
</div>
<div class="col-sm-4 col-md-4 col-lg-4" id="secondary">
<?php get_sidebar(); ?>
</div>
</div><!--/content-->
<?php get_footer(); ?>
提前致谢
答案 0 :(得分:2)
您无法直接链接到主题文件,例如:<a href="<?php bloginfo('template_directory'); ?>/popular-post.php">Popular</a>
这是一个无效的网址: http://example.com/wp-content/themes/YOUR-THEME/any-theme-file.php
。
创建一个新页面,“热门帖子”,选择模板(您的文件已经有Page Template标题。记下页面ID(在URL中)。链接如下:
<a href="<?php echo get_permalink( THE-ID-OF-YOUR-PAGE ); ?>">Popular</a>
这将生成一个有效的URL:http://example.com/popular-posts/
,它是您的内容(页面)的一部分,使用已定义的页面模板文件。
要通过标题获取页面ID,请使用get_page_by_title
:
$the_page = get_page_by_title('popular-posts');
echo '<a href="' . get_permalink($the_page->ID) . '">Popular</a>';
阅读Template Hierarchy也会有所帮助。