在循环之外的post_excerpt而不是post_content

时间:2012-10-09 03:50:26

标签: php wordpress

我正在尝试从页面中获取wordpress摘录,以显示在页脚的样式区域中。我目前有以下内容,它给了我标题和所有内容:

<?php
$page_id = 2;
$page_data = get_page( $page_id );
$content = $page_data->post_content;
$title = $page_data->post_title;
echo '<h3>'. $page_data->post_title .'</h3>';
echo '<p>'. $page_data->post_content .'</p>'; ?>

我尝试过post_excerpt而不是post_content的各种组合,并尝试在这里模拟和编辑示例:http://codex.wordpress.org/Function_Reference/get_page但是没有运气。有几次我尝试过其他人的例子,但根本没有内容。

这可能是因为我试图让它显示在循环之外,或者我还没有找到合适的组合吗?

感谢。

3 个答案:

答案 0 :(得分:8)

为什么不用substr()限制字符串?

$content = $page_data->post_content;
$excerpt = substr($content, 0, 155);

有效的东西

以这个速度,您不需要尝试找到摘录的真实变量,并且您可以控制长度,以及它是否在末尾有省略号等。

另外,如果你需要找到摘录变量,你可以做一个var_dump($page_data),看看你需要什么值,不是吗?

修改

您可以尝试使用functions.php

中的函数向页面添加手动摘录
add_action( 'init', 'my_add_excerpts_to_pages' );
function my_add_excerpts_to_pages() {
    add_post_type_support( 'page', 'excerpt' );
}

编辑编辑:

所以我只是挖得更深一点,这个小家伙就在这里帮助你。将它放在functions.php文件(source

add_post_type_support( 'page', 'excerpt' );

答案 1 :(得分:0)

也许尝试重置wordpress查询,直接将其放在您发布的代码之前。

<?php wp_reset_query(); ?>

答案 2 :(得分:0)

将此代码用于摘录...

<?php query_posts('cat=ID'.'&showposts=NO. OF POST') ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<p><?php echo substr(get_the_excerpt(), 0,65).' [...]'; ?></p>
<a href="<?php the_permalink(); ?>">Read More...</a>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php endif;?>