WordPress的主题页面不显示插件库

时间:2018-10-19 16:22:30

标签: wordpress wordpress-theming

我是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中添加一些内容,以允许我的主题在页面中包含插件的输出?

2 个答案:

答案 0 :(得分:2)

您缺少了WP loopthe_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();