摘录外循环

时间:2016-09-07 08:29:50

标签: php wordpress

试图在外部循环中摘录,但结果却并非如初想的那么简单。摘录应该在更多标签之前回显文本。意思是我没有设置摘录应包含的特定最大字母数量。这是因为我不希望句子停在他们中间。

我已将帖子ID设置为以下内容:

du

然后,我尝试添加不同的功能。这些都可以在StackOverflow和Google上找到。但由于某种原因,我无法让他们工作。我怀疑它们中的一些已经老了,而WordPress从那时起就发生了变化。

首先尝试:

<?php $post_id = 27; ?>

第二次尝试:

function get_excerpt_by_id( $post_id = 27 ) {
    global $post;
    $save_post = $post;
    $post = get_post( $post_id );
    setup_postdata( $post );
    $excerpt = get_the_excerpt();
    $post = $save_post;
    wp_reset_postdata( $post );
    return $excerpt;
}

任何想法应该如何解决?

编辑:

function my_excerpt($post_id) {
    $post = get_post($post_id);
    if ($post->post_excerpt) {
        // excerpt set, return it
        return apply_filters('the_excerpt', $the_post->post_excerpt);

    } else {
        setup_postdata( $post );
        $excerpt = get_the_excerpt();
        wp_reset_postdata();
        return $excerpt;
    }
}

2 个答案:

答案 0 :(得分:1)

您可以尝试以下

<?php get_post_field( 'post_excerpt', $post_id ); ?>

有关详细信息,请查看here

答案 1 :(得分:0)

DECLARE @input XML = '<ArrayOfAlertInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <AlertInfo>
       <AlertString xmlns="http://www.example.org/abc/v1_0">Test 1</AlertString>
       <AlertString xmlns="http://www.example.org/abc/v1_0">Test 2</AlertString>
       <AlertString xmlns="http://www.example.org/abc/v1_0">Test 3</AlertString>
       <AlertTime xmlns="http://www.example.org/abc/v1_0">1466227822997</AlertTime>
   </AlertInfo>
</ArrayOfAlertInfo>'

;WITH XMLNAMESPACES('http://www.example.org/abc/v1_0' AS ns)
SELECT 
    XC.value('(text())[1]', 'varchar(100)')
FROM 
    @input.nodes('/ArrayOfAlertInfo/AlertInfo/ns:AlertString') AS XT(XC)

<?php $excerpt = get_the_excerpt( $post ) ?> 可以是帖子ID或$ post对象。

From WP Codex