WordPress 几个实用经验分享

WordPress 几个实用经验分享

在自己构搭个人博客时候,使用了wordpress。有时候会有这样那样的想法需求,常常都是搜索方法一个一个试,如果这个不行就换一个再试试,有时候还是会消磨一点时间。这里是几个自己碰到的需求问题,自己记录下来方便后续再调整,同时使得有同样需求的网友查阅。

1 在WordPress首页和目录页只显示摘要

需要修改博客首页和目录页不显示整篇文章,而显示文章前面一小部分,可以在后台管理里面进入“外观”-> “编辑”,找到content.php文件,按照下面代码修改<div class=”entry-content”> 标签里面的内容即可。(以Twenty Fifteen 模版为例) 如下

/*屏蔽该段代码
the_content( sprintf(__( 'Continue reading %s', 'twentyfifteen' ), the_title( '<span class="screen-reader-text">', '</span>', false ))
 );*/

// 增加如下代码
if(!is_single()) {
    the_excerpt();
} else {
    the_content(__('(more…)'));
}

2 把文章的标签作为keyword

为每编文章增加keyword,方便搜索引擎搜索。

后台管理进入“外观”-> “编辑”,找到header.php,在<head> 标签内增加下面代码即可。

<?php
if (is_home()){
    $description = "这里写下主页期望的description";
    $keywords = "这里写下主页期望的keyword";
} elseif (is_single()){
    if ($post->post_excerpt) {
        $description = $post->post_excerpt;
    } else {
        $description = substr(strip_tags($post->post_content),0,200);
    }

    $keywords = "";
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {
        if (strlen($keywords) != 0) {
            $keywords = $keywords.",";
        }
            $keywords = $keywords.$tag->name;
        }
    }
?>
<meta name="keywords" content="<?=$keywords?>" />
<meta name=”description” content="<?=$description?>" />

3 为每编文章自动加上原链接

有时候希望别人拷贝自己文章时候带上文章原地址,便期望每个文章后面输出文章原地址。方法如下:

(推荐)方法1:

后台管理里面进入“外观”-> “编辑”,找到functions.php文件,在文件末尾加上如下代码即可:

function add_after_post_content($content) {
	if(!is_feed() && !is_home() && is_singular() && is_main_query() && !is_page("about")) {		
		$original_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
		$link = '<a href="'.$original_link.'" title="原地址">原文链接:'.$original_link.'</a>';
		
		$content .= $link;
	}
	
	return $content;
}

add_filter('the_content', 'add_after_post_content');

方法2:

后台管理里面进入“外观”-> “编辑”,找到content.php文件。

查阅源代码,找到一个 if ( ! is_single() ) 这样的类似分支,在else 逻辑内的末尾处加入如下代码:

  
$original_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
 ?><a href="<?php echo ($original_link)?>" title="原地址"/>原文链接:<?php echo ($original_link)?></a><?php

有些WP 主题可能是 if ( is_single() ) 的逻辑,直接在其括号末尾处加上上面代码。is_single 字面理解就可以知道判断是非是单篇文章。

如果该文件有多个is_single之类的判断,需要断定下哪个才是博客内容的逻辑,找出它再加进去。

如果想在文章开头加上该功能,则在if 括号内开始位置加上上述代码即可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注