📅  最后修改于: 2023-12-03 15:22:31.455000             🧑  作者: Mango
在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' );
# 允许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()
有更好的灵活性和可定制性。