7 个实用的 WordPress 代码片段

贴几个最近用到 WordPress 的代码片段,代码均搜集于网络,使用方式都是添加到主题的 functions.php 文件。搜索结果页面关键字高亮为搜索结果页中的标题和正文的关键字添加 highlight 类,然后你就可以通过 CSS 设定高亮样式了。function c7sky_highlight_search_k...

贴几个最近用到 WordPress 的代码片段,代码均搜集于网络,使用方式都是添加到主题的 functions.php 文件。

搜索结果页面关键字高亮

为搜索结果页中的标题和正文的关键字添加 highlight 类,然后你就可以通过 CSS 设定高亮样式了。

function c7sky_highlight_search_keywords($text){    if ( is_search() ) {        $s = get_search_query();        $keys = explode(' ', $s);        $text = preg_replace('/(' . implode('|', $keys) . ')/iu', '<strong class="highlight">$1</strong>', $text);    }    return $text;}add_filter( 'the_title', 'c7sky_highlight_search_keywords' );add_filter( 'the_excerpt', 'c7sky_highlight_search_keywords' );

搜索关键字为空时自动跳转到首页

默认情况下,如果关键字为空,WordPress 会列出所有的文章。谁会这么无聊… 不如自动跳转到首页。

function c7sky_redirect_blank_search( $query_variables ) {    if ( isset( $_GET['s'] ) && empty( $_GET['s']) ) {        wp_redirect( home_url() );        exit;    }    return $query_variables;}add_filter( 'request', 'c7sky_redirect_blank_search' );

关闭文章的标签功能

用不到标签,留着碍眼?去掉吧,就这么简单粗暴。

function c7sky_unregister_post_tag() {    unregister_taxonomy_for_object_type('post_tag', 'post');}add_action( 'init', 'c7sky_unregister_post_tag' );

清理 WordPress 菜单中的 classes

WordPress 菜单默认会输出一堆然并卵的 classes。如果你有洁癖,可以只保留你觉得有用的 classes,比如我觉得 current-menu-item 和 menu-item-has-children 最有用了。

function c7sky_cleanup_nav_menu_class( $classes ) {    return array_intersect($classes, array(        'current-menu-item',        'menu-item-has-children'    ));}add_filter( 'nav_menu_css_class', 'c7sky_cleanup_nav_menu_class' );

自动设置文章的第一张图为特色图像

懒得每次手动设置特色图像?这段代码可以自动把文章中上传的第一张图片设置为特色图像。(不支持外链图片)

function c7sky_autoset_featured_image() {    global $post;    if (!is_object($post)) return;    $already_has_thumb = has_post_thumbnail($post->ID);    if (!$already_has_thumb)  {        $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );        if ($attached_image) {            foreach ($attached_image as $attachment_id => $attachment) {                set_post_thumbnail($post->ID, $attachment_id);            }        }    }}add_action( 'the_post', 'c7sky_autoset_featured_image' );add_action( 'save_post', 'c7sky_autoset_featured_image' );add_action( 'draft_to_publish', 'c7sky_autoset_featured_image' );add_action( 'new_to_publish', 'c7sky_autoset_featured_image' );add_action( 'pending_to_publish', 'c7sky_autoset_featured_image' );add_action( 'future_to_publish', 'c7sky_autoset_featured_image' );

添加短代码

这段代码是把 [attachment id=”1,2,3″] 输出为一个附件列表。

function c7sky_attachment_shortcode( $atts ) {    $ids = explode(',', $atts['ids']);    $html = '';    foreach ($ids as $id) {        $url = wp_get_attachment_url( $id );        $name = basename($url);        $html .= '<li><a class="file" href="'%20.%20$url%20.%20'" target="_blank">' . basename($url) . '</a></li>';    }    return '<div class="attachment-box"><h5 class="title">附件:</h5><ul>' . $html . '</ul></div>';}add_shortcode( 'attachment', 'c7sky_attachment_shortcode' );

获取文章的第一张图片

function c7sky_get_first_image() {    global $post, $posts;    $first_img = '';    ob_start();    ob_end_clean();    $output = preg_match_all('//i', $post->post_content, $matches);    $first_img = $matches[1][0];    if ( empty($first_img) ) {        $first_img = "/path/to/default.png";    }    return $first_img;}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
wordpress教程

WordPress防止发表重复标题的文章[代码版]

2023-2-16 15:51:01

wordpress教程

WordPress邮件发送方式简介

2023-2-16 15:51:03

!
你也想出现在这里?立即 联系我们吧!
信息
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索