📜  允许shortocde the_excerept - PHP (1)

📅  最后修改于: 2023-12-03 15:22:31.455000             🧑  作者: Mango

允许shortcode the_excerpt - PHP

在WordPress主题开发中,我们经常需要在主题首页或文章列表中显示文章的摘要。而WordPress提供了一个非常简单的方法来获取文章的摘要,就是使用 the_excerpt() 函数。

但是在某些情况下,the_excerpt() 函数可能会导致一些问题,例如无法正确截取文章的摘要、不能自定义摘要的长度等。因此,开发人员可能需要使用自定义函数来实现文章摘要的截取和显示。

使用shortcode可以更加方便快捷地在文章正文中使用我们自定义的文章摘要。代码示例如下:

// 声明shortcode函数
function custom_excerpt_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'length' => '55',
        'more_text' => '...',
        'ellipsis' => true,
    ), $atts );

    // 获取文章摘要
    global $post;
    $excerpt = get_the_excerpt();

    // 截取文章摘要
    if ( strlen( $excerpt ) > $atts['length'] ) {
        $excerpt = mb_substr( $excerpt, 0, $atts['length'], 'UTF-8' );
        if ( $atts['ellipsis'] ) {
            $excerpt .= $atts['more_text'];
        }
    }

    // 返回文章摘要
    return $excerpt;
}

// 注册shortcode
add_shortcode( 'custom_excerpt', 'custom_excerpt_shortcode' );

以上代码中,我们创建了一个名为 custom_excerpt 的shortcode,可以通过 length 参数设置文章摘要的长度,通过 more_text 参数设置省略号,通过 ellipsis 参数控制省略号是否显示。

在文章正文中,我们只需要插入以下shortcode即可:

[custom_excerpt length="100" more_text="..." ellipsis="1"]

以上shortcode会返回当前文章的摘要,并根据参数进行截取和显示。使用shortcode相对于直接调用the_excerpt()有更好的灵活性和可定制性。

代码片段
// 声明shortcode函数
function custom_excerpt_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'length' => '55',
        'more_text' => '...',
        'ellipsis' => true,
    ), $atts );

    // 获取文章摘要
    global $post;
    $excerpt = get_the_excerpt();

    // 截取文章摘要
    if ( strlen( $excerpt ) > $atts['length'] ) {
        $excerpt = mb_substr( $excerpt, 0, $atts['length'], 'UTF-8' );
        if ( $atts['ellipsis'] ) {
            $excerpt .= $atts['more_text'];
        }
    }

    // 返回文章摘要
    return $excerpt;
}

// 注册shortcode
add_shortcode( 'custom_excerpt', 'custom_excerpt_shortcode' );
Markdown
# 允许shortcode the_excerpt - PHP

在WordPress主题开发中,我们经常需要在主题首页或文章列表中显示文章的摘要。而WordPress提供了一个非常简单的方法来获取文章的摘要,就是使用 `the_excerpt()` 函数。

但是在某些情况下,`the_excerpt()` 函数可能会导致一些问题,例如无法正确截取文章的摘要、不能自定义摘要的长度等。因此,开发人员可能需要使用自定义函数来实现文章摘要的截取和显示。

使用shortcode可以更加方便快捷地在文章正文中使用我们自定义的文章摘要。代码示例如下:

```php
// 声明shortcode函数
function custom_excerpt_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'length' => '55',
        'more_text' => '...',
        'ellipsis' => true,
    ), $atts );

    // 获取文章摘要
    global $post;
    $excerpt = get_the_excerpt();

    // 截取文章摘要
    if ( strlen( $excerpt ) > $atts['length'] ) {
        $excerpt = mb_substr( $excerpt, 0, $atts['length'], 'UTF-8' );
        if ( $atts['ellipsis'] ) {
            $excerpt .= $atts['more_text'];
        }
    }

    // 返回文章摘要
    return $excerpt;
}

// 注册shortcode
add_shortcode( 'custom_excerpt', 'custom_excerpt_shortcode' );

以上代码中,我们创建了一个名为 custom_excerpt 的shortcode,可以通过 length 参数设置文章摘要的长度,通过 more_text 参数设置省略号,通过 ellipsis 参数控制省略号是否显示。

在文章正文中,我们只需要插入以下shortcode即可:

[custom_excerpt length="100" more_text="..." ellipsis="1"]

以上shortcode会返回当前文章的摘要,并根据参数进行截取和显示。使用shortcode相对于直接调用the_excerpt()有更好的灵活性和可定制性。