如何使用POST_EXCEPT获取帖子或页面摘录

时间:2014-08-24 作者:cmsdeployed

我正在使用以下foreach 回路:

$pages = get_pages(array (\'post_type\' => \'page\',\'sort_column\' => \'menu_order\',));
   foreach ($pages as $page) {
     $apage = $page->post_name;
     if ( $apage ==\'about\') { 
            echo apply_filters(\'the_content\', $page->post_content)
        } // if about page
   } // foreach
我希望能够通过使用

 $post->post_excerpt
这可能吗?

3 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

EDIT

看来我有些误会你了。我确实认为你没有抓住post_excerpt.

创建新帖子或页面时(也可以使用AFAIK页面),您有机会在摘录元框中创建手动摘录(要使其可用,只需在添加新帖子/编辑帖子/页面屏幕中的屏幕选项下拉列表中启用即可)。本手册摘录(或user defined excerpt) 在该元框中输入的值保存在post_excerpt, 然后可以使用$post->post_excerpt. 如果该元框为空,即如果您没有指定手动摘录,则不会返回任何内容

它与模板标记的工作方式不同,the_excerpt() 它通过使用内容创建摘录来动态创建摘录,顺便说一句,这在页面上不起作用。

请退房WP_Post

post\\u摘录

一串

用户定义的帖子摘录

EDIT 2

如果没有显示“手动摘录”元框,您只需使用以下代码激活它

add_action( \'init\', \'add_excerpts_to_pages\' );
function add_excerpts_to_pages() {
     add_post_type_support( \'page\', \'excerpt\' );
}

ORIGINAL ANSWER

您对的使用get_pages 这里错了。get_pages 不用于此用途。

您应该将自定义查询用于get_postsWP_Query

您可以这样做来显示页面和摘录

<?php

// The Query
$the_query = new WP_Query(\'post_type=page\' );

// The Loop
if ( $the_query->have_posts() ) {
  while ( $the_query->have_posts() ) {
    $the_query->the_post();
       the_title();
       the_excerpt();
    }
  } else {
  // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

SO网友:Hassan Alvi

将此代码添加到函数中。php,它将在页面中添加对摘录的支持

<?php
    add_action(\'init\', \'my_custom_init\');
    function my_custom_init() {
        add_post_type_support( \'page\', \'excerpt\' );
    }
?>
使用此选项显示摘录。。

 $pages = get_pages(array (\'post_type\' => \'page\',\'sort_column\' => \'menu_order\'));
   foreach ($pages as $page) {
     $apage = $page->post_name;
     if ( $apage ==\'about\') { 
            echo apply_filters(\'the_excerpt\', $page->post_content);
        } // if about page
   } // foreach

SO网友:cmsdeployed

$query = new WP_Query( \'pagename=about\' ); 

// The Loop
while ( $query->have_posts() ) {
    $query->the_post(); ?>
    <header class="entry-header">
        <h2 class="entry-title">
            <?php the_title(); ?>
        </h2>
    </header>
    <div class="entry-summary">
        <?php the_excerpt(); ?>
    </div>
    <?php }
    wp_reset_postdata(); ?>
我最终使用了上述代码。我将不得不使用多个查询,而不是foreach循环。我仍然想知道如何使用我提交的foreach循环获取摘录。

结束

相关推荐

有什么方法可以让多个Front-Page.php模板互换?

我主要想创建几个不同的头版。php模板具有不同的循环和布局,然后在管理面板中提供一个选项,以在一天选择一个模板,在另一天选择另一个模板。我想,这可以通过愚弄Wordpress,选择一个静态页面作为首页,并从页面编辑屏幕中选择一个自定义页面模板来实现,该模板实际上不是一个“静态”页面,而是一个具有完整循环的页面,这是我的首页中的几个自定义页面模板之一。php选项。另一种方法是将我的所有循环和自定义布局包含在一个首页的if语句中。php和每次使用其中一个if语句的呈现选项。(这似乎是合理的,虽然对我来说有点笨