我是Wordpress的新手。我正在尝试从头开始构建主题。 我创建了以下page.php:
<?php
/**
* The template for displaying pages
*
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages and that
* other "pages" on your WordPress site will use a different template.
*
* @package nameofpackage
*/
get_header(); ?>
<?php get_footer(); ?>
我还安装了NextGen插件。 我创建了一个新页面,并使用NextGen的“添加图库”按钮;我最终以
[ngg src="galleries" ids="1" display="basic_thumbnail"]
在页面的文本部分内(可视部分在框中显示插件徽标)。
当我尝试预览结果时,我只得到页眉和页脚,中间什么都没有;检查员不会显示与图库相关的代码。
如果我用ThemeFifteen尝试相同的东西,它将起作用。
所以我的问题是:是否需要在function.php中添加一些内容,以允许我的主题在页面中包含插件的输出?
答案 0 :(得分:2)
您缺少了WP loop和the_content(),因此在页眉和页脚之间看不到任何东西是绝对正常的。例如,您需要这样的东西:
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'loop-templates/content', 'page' );//calling the folder with your loop templates ?>
<?php
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
?>
<?php endwhile; // end of the loop. ?>
在循环模板中,例如:
<article <?php post_class(); ?> id="post-<?php the_ID(); ?>">
<header class="entry-header">
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
</header><!-- .entry-header -->
<?php echo get_the_post_thumbnail( $post->ID, 'large' ); ?>
<div class="entry-content">
<?php the_content(); ?>
<?php
wp_link_pages( array(
'before' => '<div class="page-links">' . __( 'Pages:', 'understrap' ),
'after' => '</div>',
) );
?>
</div><!-- .entry-content -->
<footer class="entry-footer">
<?php edit_post_link( __( 'Edit', 'understrap' ), '<span class="edit-link">', '</span>' ); ?>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->
这是组织主题的非常常用的方法,但是请花一些时间在有关开发自定义主题的初学者教程上。掌握基本概念非常容易,您将需要几个小时才能得到这个想法!这只是我要强调的一个示例,您的代码的快速而肮脏的修复方法是:
<?php
/**
* The template for displaying pages
*
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages and that
* other "pages" on your WordPress site will use a different template.
*
* @package nameofpackage
*/
get_header(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php the_title(); ?>
<?php the_content(); ?>
<?php endwhile; // end of the loop. ?>
<?php get_footer(); ?>
答案 1 :(得分:-1)
您正在寻找的是do_shortcode()
See the docs
确保也echo
。
<?php
get_header();
echo do_shortcode('[ngg src="galleries" ids="1" display="basic_thumbnail"]');
get_footer();
您还可以使用apply_filters()
并传递'the_content'挂钩。这将使您的短代码具有与后端wysiwyg编辑器中使用的钩子/过滤器相同的钩子/过滤器,但最终它只是在幕后使用do_shortcode()
。
<?php
get_header();
echo apply_filters('the_content', '[ngg src="galleries" ids="1" display="basic_thumbnail"]');
get_footer();