0

所以我是一个初学者,试图制作一个自定义主题。在一个页面中,我想要一个画廊。上传图片,制作画廊都很好。

当我查看页面时,它只输出简码:

[画廊 orderby="post_date"]

我的 page.php 文件基本上有:

<?php $content = get_page( $page_id ) ?>

<div id='content' class='shadow'>
    <div id='innercontent'>
<!---page title-->
<?php echo "<h1>".$content->post_title."</h1><br>" ; ?>

<?php echo $content->post_content ?>
    </div>
</div>


<?php get_sidebar(); ?>

<?php get_footer(); ?>

我真的不明白如何让它正确显示,任何指针将不胜感激。干杯,马特

4

1 回答 1

1

get_page 返回原始页面数据。有几种方法可以做你想做的事:

不好的方式:

<?php $content = get_page( $page_id ) ?>

<div id='content' class='shadow'>
    <div id='innercontent'>
<!---page title-->
<?php echo "<h1>".$content->post_title."</h1><br>" ; ?>

<?php echo do_shortcode($content->post_content); ?>
    </div>
</div>


<?php get_sidebar(); ?>

<?php get_footer(); ?>

do_shortcode() 呈现在给定字符串中找到的所有已注册短代码。在这种情况下,您的页面内容将在写入文档之前呈现所有短代码。我说这是“坏”的方式,只是因为它不遵循通常的 Wordpress 格式。这导致我们:

更好的方法:

<?php if(have_posts()) : while(have_posts()) : the_post(); ?>

<div id='content' class='shadow'>
    <div id='innercontent'>
<!---page title-->
<h1><?php the_title(); ?></h1><br>
<?php the_content(); ?>
    </div>
</div>
<?php endwhile;endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

这就是所谓的“循环”。它几乎是所有 Wordpress 主题检索所有帖子或页面数据以及对数据库运行查询的标准。

我建议了解它,以及运行 Wordpress 查询以使用WP Query修改循环。这涉及到 Wordpress 的一个更复杂的领域,但从长远来看,它将帮助您弄清楚如何收集您想要在您的主题中检索的所有帖子和页面,这些帖子和页面不是由 Wordpress 的全局变量提供的。

祝你好运。

于 2012-09-13T17:46:42.690 回答