当我们安装主题和插件时,都会向…
默认情况下,WordPress摘录设置为55个单词,并且有一个excerpt_length过滤器,可让您将该默认值更改为您选择的长度。但是,如果您希望站点的不同部分具有不同的摘录长度,该怎么办?例如,如果您要开发具有多种帖子类型的网站,则可能需要根据帖子类型显示不同的摘录长度。博客文章的摘录可能比例如投资组合项目的摘录更长。
自定义摘录功能
在下面,您将找到我们开发的自定义功能,可帮助您在WordPress主题中显示不同长度的摘录。要使用该函数,只需将其添加到您的functions.php文件中,然后就可以在整个主题中替换the_excerpt或the_content函数,以便您可以选择不同的摘录长度。
function wpex_get_excerpt( $args = array() ) { // Defaults $defaults = array( 'post' => '', 'length' => 40, 'readmore' => false, 'readmore_text' => esc_html__( 'read more', 'text-domain' ), 'readmore_after' => '', 'custom_excerpts' => true, 'disable_more' => false, ); // Apply filters $defaults = apply_filters( 'wpex_get_excerpt_defaults', $defaults ); // Parse args $args = wp_parse_args( $args, $defaults ); // Apply filters to args $args = apply_filters( 'wpex_get_excerpt_args', $defaults ); // Extract extract( $args ); // Get global post data if ( ! $post ) { global $post; } // Get post ID $post_id = $post->ID; // Check for custom excerpt if ( $custom_excerpts && has_excerpt( $post_id ) ) { $output = $post->post_excerpt; } // No custom excerpt...so lets generate one else { // Readmore link $readmore_link = '<a href="' . get_permalink( $post_id ) . '" class="readmore">' . $readmore_text . $readmore_after . '</a>'; // Check for more tag and return content if it exists if ( ! $disable_more && strpos( $post->post_content, '<!--more-->' ) ) { $output = apply_filters( 'the_content', get_the_content( $readmore_text . $readmore_after ) ); } // No more tag defined so generate excerpt using wp_trim_words else { // Generate excerpt $output = wp_trim_words( strip_shortcodes( $post->post_content ), $length ); // Add readmore to excerpt if enabled if ( $readmore ) { $output .= apply_filters( 'wpex_readmore_link', $readmore_link ); } } } // Apply filters and echo return apply_filters( 'wpex_get_excerpt', $output ); }
如何使用功能
因此,现在可以在循环中使用“ wpex_excerpt($ args)”,而不必在循环中使用“ the_excerpt()”,其中$ args包含特定摘录的首选设置数组。
例:
<?php echo wpex_get_excerpt ( $defaults = array( 'length' => 40, 'readmore' => true, 'readmore_text' => esc_html__( 'read more', 'wpex-boutique' ), 'custom_excerpts' => true, ) ); ?>
功能过滤器
您可能会注意到,我们的代码片段包含各种apply_filters()函数。为什么?这样做的原因是,如果您正在开发高级或免费主题或用于分发的插件,则需要使最终用户能够根据需要通过其子主题更改其摘录。例如,如果您将摘录定义为网站某个部分的特定长度,则最终用户可以始终使用“ wpex_get_excerpt_args”过滤器将摘录更改为其他长度,或者自定义文本或阅读更多内容
微信扫描二维码联系我们!
我们在微信上24小时期待你的声音
提供外贸路由器设备产品,轻松翻墙,解答:WP主题推荐,WP网站建设,Google SEO,百度SEO,专业服务器环境搭建等!
需要提供WordPress主题/插件的汉化服务可以随时联系我们!另外成品WordPress网站以及半成品WordPress网站建设,海外Google SEO优化托管服务,百度SEO优化托管服务,Centos/Debian服务器WP专用环境搭建,WP缓存服务器搭建,我们都是你的首选,拥有多年WP开源程序服务经验,我们一直在坚持客户体验,没有最好,只有更好!