一、优化背景
最近瞎整了不少东西,新备案了个免费软件资源站(puretool.cn)、开通了微信公众号(服务号)、魔改了一番开源 WP 主题 Puock……魔改后的 Puock 就是你现在看到的样子啦。在设计软件文章样式时候, 遇到这样的问题: 一方面为了 SEO,关于软件介绍的文章标题希望能携带尽量多的信息,比如软件主要用途、软件名称、版本、是否收费等各种信息;另一方面,从用户的使用体验来讲,在网站的某些页面,比如首页、比如侧边栏的热度排行,又希望软件信息尽可能精简,最好就只显示软件名称及版本信息。 简单的二选一是非常好实现的,那如果我想要又要呢?
二、实现原理
在查找相关技术文档时,发现了 WP 文章页提供了“自定义字段”这样的功能,通过自定义字段完全可以实现文章的“第二标题”和软件版本信息。虽然在文章发布时可能会增加一定的工作量,但能够完全实现我的需求。
WP 文章页的“自定义字段”是在文章发布前手动添加一个自定义字段变量 / 键,然后填上对应的变量值 / 键值,文章发布后键 / 键值直接存放到数据库中;在遍历文章内容时,可以通过对应的函数直接获取自定义变量值;最后,在原显示文章标题的位置,替换为自定义变量值,实现文章名称显示“第二标题”,但图片、链接保持不变。
三、具体操作
1、文章发布时,添加自定义字段“2title”用于保存精简的软件名称(文章第二标题),自定义字段“version”保存软件版本信息;
2、在 WP 后台文件中,遍历文章的 php 文件,找到控制显示文章标题的函数,将 get_title() 替换为 get_post_meta($post->ID, ‘2title’, true),需要显示软件版本信息的位置通过 get_post_meta($post->ID, ‘version’, true) 函数来获取;
<h2 class="t-lg text-2line">
<a class="a-link" title="<?php the_title() ?>" <?php pk_link_target() ?> href="<?php the_permalink() ?>"><?php echo get_post_meta($post->ID, '2title', true); ?>
</a>
</h2>
<div class="t-md c-sub text-2line"><?php echo get_post_meta($post->ID, 'version', true); ?></div>
3、其他工作:根据自己想要的显示效果,优化一些显示样式,主要调整各种 css,需要一点点耐心,略。
四、效果验证
基本实现了:
同一篇文章在不同位置显示不同的文章标题,比如在默认的最近更新栏中显示完整的文章标题,在 CMS 缩略图栏和侧边栏软件热度排行栏只显示精简过的文章标题(“第二标题”);
无论是通过完整标题还是精简版的第二标题,点击链接都跳转到同一文章。
6,站长你的技术是真的好,我和你一样主题,但是你设计的好得多
@zy 都是根据自己的需求修修补补的,主要还是puock主题底子好,逻辑清晰,层次分明~