自定义wordpress主题回应画廊短代码

时间:2012-09-13 17:18:36

标签: wordpress wordpress-theming

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

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

[gallery 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(); ?>

我真的不明白如何正确显示,任何指针都会非常感激。干杯,马特

1 个答案:

答案 0 :(得分:1)

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

BAD WAY:

<?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(); ?>

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

我建议了解它,以及运行Wordpress查询以使用WP Query修改循环。这是进入一个更复杂的Wordpress领域,但它将帮助你在longrun中找出如何收集你想要在主题中检索的所有帖子和页面,这些帖子和页面不是由Wordpress的全局变量提供的。 / p> 祝你好运。