WordPress基础教程

7 个实用的 WordPress 代码片段

发布时间:2018-06-25 13:38:25

本文作者:

最后更新时间为 2018年6月25日

贴几个最近用到 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="' . $url . '" 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;
}

 

小兽wordpress凭借多年的wordpress企业主题制作经验,坚持以“为用户而生的wordpress主题”为宗旨,累计为10万多家客户提供品质wordpress建站服务,得到了客户的一致好评。我们一直用心对待每一个客户,我们坚信:“善待客户,将会成为终身客户”。小兽wordpress能坚持多年,是因为我们一直诚信。我们明码标价(wordpress做网站需要多少钱),从不忽悠任何客户,我们的报价宗旨:“拒绝暴利,只保留合理的利润”。如果您有网站建设、网站改版、网站维护等方面的需求,请立即咨询右侧在线客服或拨打咨询热线:18907337671,我们会详细为你一一解答你心中的疑难。

相关文章

为什么选择小兽WordPress

哪怕不计成本的时间投入,也绝不辜负任何一个客户。
成就客户成就自我的同时,把这个世界变得再美好一点。

我们的故事

小兽WordPress是2011年开始接触互联网,在这期间用WordPress搭建了一个博客叫小兽WordPress,专门学习WordPress建站。

我们的使命

我们希望用WordPress这款优秀的建站程序帮助每个人搭建一个属于自己的网站,高效率低成本做好互联网营销。

我们的文化

我们专注于把客户的事情做好并且做对,这意味着我们在做决定时会考虑到结果,最重要的是,我们力求真实。

我们的未来

我们将在不久的未来成为国内最好的WordPress工作室,小兽WordPress希望和每一个客户成为朋友,一起见证这个美好未来。

为什么选择小兽WordPress

告诉我你是谁,为你量身定做建站方案

我们深知不同的人做网站的阶段不一样,有的是新手,有的是老手。
我们清楚不同的人做网站的目的不一样,有的是展示,有的是营销。

如何让线上业务更上一层楼

还没有WordPress网站

还没有WordPress网站

不管你从事什么行业,WordPress都会为你提供一个专业的主题模板。在WordPress市场上有成千上万的免费主题,适合很多中小企业。

查看所有模板
已经有WordPress网站

已经有WordPress网站

小兽WordPress诚邀你一起学习WordPress,愿与各方携手升级改善您的WordPress网站,一起交流网站加速,网站优化等问题。

马上交个朋友
微信联系
chat 扫码联系
模板建站
挑选模板
网站定制
免费诊断
咨询热线
咨询热线

189-0733-7671

返回顶部