• 黄聪:WordPress代码级处理


    首先这篇文章是面向略有一些PHP基础的读者的。

    然后是一小段对于不懂PHP读者的一些题外话:PHP是一门入门非常容易的语言,虽然深入学下去是否相对容易也无法由我这样的三脚猫技术来谈论。经 常在网上看到有人说可惜自己不是学程序的云云,却殊不知天天抱怨用去的时间已经能学出一些成果了。所以说强力建议做和互联网相关的至少抽一个星期出来学下 PHP或者其他的编程语言。完全掌握这篇文章所需的东西,绝对不会需要超过一个礼拜的时间。PHP入门的话,可以考虑去这边看看:http://www.w3school.com.cn/php/index.asp

    接下来要介绍的一些代码片段不少是可以找到插件来实现的,但至少我并不建议这样。尤其对于我这样一个做SEO、又对WP很狂热的人而言,装几十个插件是不稀奇的,这类情况下找插件都会是一件纠结的事情,而尽管其中一些插件的功能用短短几句函数就能搞定。

    太依赖插件偶尔还会导致严重的负面效果,比如前段时间看到有人不小心用了一个综合性的SEO插件,结果不小心在所有页面里面都加上 了<meta name=”robots” content=”index, nofollow” />这句,结果百度爬虫就没法抓取多数新增的页面了。

    废话已经挺多了,直接上代码吧:

    例1:WP分开设置首页与内页的标题

    <?php
    
    if (is_home()) {
        echo 'SEM WATCH 搜索引擎营销';
    
    } else {
        wp_title('_',true,'right');
        echo 'SEMWATCH';
    
    }
    
    ?>

    把原先header.php中,之间的内容替换成以上的即可。

    结果是首页的title会变为“SEM WATCH 搜索引擎营销”,内页的标题会变成“Wordpress代码级处理_SEMWATCH”。

    wp_title这个函数的设置三个参数的作用分别为:1.分隔符,2.是否自动输出(不输出可以用echo),3.分隔符显示在标题的左侧或右侧

    is_home函数是用来确定网页类型的,这里指的是首页。另外还有is_single(文章页),is_category(分类目录)等。

    is_home还常被我用来设置只在首页显示友情链接等等。

    例2:WP文章摘要输出

    <?php
        echo mb_substr(strip_tags(get_the_content()),220);
    ?>

    把需要输出摘要的页面中的替换成以上即可。

    结果是会紧密的输出正文靠前的220个字符。

    其中get_the_content和the_content类似,区别在于the_content直接输出,而前者置入变量。 strip_tags是为了去除其中所有的html标签,可以避免出现比如215个字符在第一段,第二段只显示5个字符就被截断的看上去比较怪的情况。 mb_substr是为了截取字符串中的某一部分,它和substr函数类似,但不会类似于substr把中文字符从当中切断而导致乱码(因为WP默认 UTF8编码下中文是3个字符)。

    例3:制作特别的页面

    <?php
        if strpos($_SERVER["REQUEST_URI"],'xxx') {
            // ...
        }
    
    ?>

    这段可能因为比较突兀而让人不解,先解释下。因为WP里面页面种类较少,文章、页面、分类目录、日期归档、文章标签,当然还有首页,就这几种了。有时候可能会想超出这些页面做一类新的页面出来就比较麻烦,比如用WP做电子商务网站的支付页等等。

    当然通过二次开发,这些都是能完美的搞定的,但明显二次开发相对耗时间了,一个简单的权宜之计就是用这段代码。

    $_SERVER["REQUEST_URI"]获取当前的URL,如果在其中找到某字符串(strpos),那么就开始生成页面。比如说如果做电 子商务网站,交易页URL里面统一有”onepage”,那么就strpos($_SERVER["REQUEST_URI"],’onepage’)。

    这一个if判断比如可以在title部分用一下,在the_content输出正文的地方用一下等等,其他不设定的地方就可以跟着模板默认的来。

  • 相关阅读:
    Nginx+Keepalived实现简单的服务高可用
    搭建私有镜像仓库
    GlusterFS
    GlusterFS分布式存储系统
    GlusterFS分布式存储
    ladp日志配置
    go mod位置和自定义包引入问题
    .netcore 使用redis
    一篇技术博文引发的stylelint项目实践
    React Hooks使用避坑指南
  • 原文地址:https://www.cnblogs.com/huangcong/p/2343205.html
Copyright © 2020-2023  润新知