搜索全站
建站 12 分钟阅读

WordPress 简历站怎么做?单页结构、PDF 导出与 Person 结构化数据

简历站要做到"一页看懂、一键存 PDF、一搜能找到"。本文给出单页结构划分、打印样式导出 PDF 的完整 CSS,以及 Person JSON-LD 与 vCard 的配置方法。

U
UFO_PF 2024-02-10 · 阅读 12 分钟
Wo 建站
阅读提示
本文约 4,641 字,预计阅读 12 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:HR 只给你三十秒,PDF 还导出成一团乱码

找工作时你会发一个 PDF 简历,但它有个致命缺陷:版本会过期、链接无法点击、看不到作品的实际效果。做一份在线简历页能解决这些——HR 打开链接看到的是最新状态,作品可以点击跳转,联系方式一键拨号。可很多人做完发现两个新问题:一是页面用主题搭出来,花里胡哨的导航和侧边栏占了半屏,HR 找不到工作经历;二是 HR 想存档时点了浏览器打印,结果导航栏、页脚、背景色全印进去了,两页纸里有一页是垃圾。

这两个问题的本质是同一个:简历站的输出媒介有两个(屏幕和纸张),但你只设计了其中一个。屏幕版追求信息密度和可读性,纸张版追求结构化和留白。两者必须分别设计,而不是指望一次打印自动搞定。

原理分析:屏幕媒介与纸张媒介的差异

维度 屏幕版 打印版
导航 需要锚点跳转 必须隐藏
交互 悬停、折叠、灯箱 全部失效,需默认展开
链接 可点击 需显示 URL 文本
颜色 品牌色、深色块 黑白为主,省墨
分页 连续滚动 需避免内容跨页断裂
尺寸 响应式 A4 / Letter 固定宽度

CSS 的 @media print 就是为这个场景存在的,但默认主题几乎都没写。你需要自己补:隐藏 .site-header .site-footer .sidebar,把折叠面板强制展开,去掉背景图,控制分页断点。

保姆级实操

步骤 1:用单页结构,别用多页面

整站只做一个页面(设为首页静态页),结构顺序固定:

<header class="resume-hero">
  <h1>张明</h1>
  <p class="tagline">后端工程师 · Go / Kubernetes · 8 年经验</p>
  <p class="contact">
    <a href="mailto:hi@example.com">hi@example.com</a> ·
    <a href="tel:+8613800000000">+86 138 0000 0000</a> ·
    <a href="https://github.com/example" rel="me">GitHub</a>
  </p>
</header>

<section id="skills">核心技能</section>
<section id="experience">工作经历(倒序,最近一份最详细)</section>
<section id="projects">代表项目(3 个足够)</section>
<section id="education">教育背景(一行)</section>
<section id="contact">联系表单</section>

顺序遵循”招聘方最想先看什么”:技能 → 经历 → 项目 → 教育。经历必须倒序,最近一份写 4–5 条成果,更早的写 2 条即可。

步骤 2:写打印样式

这是本文的核心,直接放进子主题 style.css。重点是隐藏无关区块、强制展开折叠、控制分页:

@media print {
  .site-header, .site-footer, .sidebar, .contact-form,
  .breadcrumb, .social-share, nav.anchor-nav { display: none !important; }

  /* 去掉背景与阴影,纯黑白 */
  body { background: #fff !important; color: #000 !important; font-size: 11pt; }
  * { box-shadow: none !important; text-shadow: none !important; }

  /* 折叠内容默认展开,防止打印出来是空的 */
  details { display: block; }
  details > *:not(summary) { display: block !important; }
  details[open] summary ~ * { display: block !important; }

  /* 链接后附加 URL,纸张上才能看到地址 */
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
  a[href^="mailto"]::after,
  a[href^="tel"]::after { content: ""; }

  /* 避免区块被截断在两页之间 */
  section { break-inside: avoid; page-break-inside: avoid; }
  h2 { break-after: avoid; page-break-after: avoid; }
  .resume-hero { break-after: avoid; }

  @page { margin: 15mm; }
}

步骤 3:加一个”下载 PDF”按钮

页面顶部放一个按钮,点击调用 window.print(),让浏览器另存为 PDF。比装任何 PDF 插件都轻:

<button type="button" class="btn-print" onclick="window.print()">保存为 PDF</button>

如果确实需要服务端生成,可用 Print Friendly 这类插件,但它会引入外部请求;纯打印样式方案零依赖、零延迟,也更可控。

步骤 4:加 Person 结构化数据

让 Google 在搜索人名时能把你的职业信息展示出来。通过 wp_head 输出 JSON-LD:

add_action( 'wp_head', function () {
    if ( ! is_front_page() ) {
        return;
    }
    $data = array(
        '@context'    => 'https://schema.org',
        '@type'       => 'Person',
        'name'        => '张明',
        'jobTitle'    => '后端工程师',
        'email'       => 'hi@example.com',
        'url'         => home_url( '/' ),
        'sameAs'      => array(
            'https://github.com/example',
            'https://www.linkedin.com/in/example',
        ),
        'knowsAbout'  => array( 'Go', 'Kubernetes', 'MySQL' ),
    );
    echo '<script type="application/ld+json">' .
        wp_json_encode( $data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) .
        '</script>';
} );

步骤 5:提供 vCard 下载

给 HR 一个 .vcf 文件,双击就能把联系人存进手机。手工写一份放站点根目录即可:

BEGIN:VCARD
VERSION:3.0
N:张;明;;;
FN:张明
TITLE:后端工程师
EMAIL;TYPE=WORK:hi@example.com
TEL;TYPE=CELL:+8613800000000
URL:https://example.com
END:VCARD

步骤 6:移动端优先检查

HR 常在手机上看链接。字号不小于 16px、行高 1.6、联系区固定在底部、点击区域不小于 44px。

常见踩坑

  1. 打印时折叠面板内容是空的:details 默认收起,打印不会自动展开,必须在 @media print 里强制 display:block。
  2. 背景色打印成大片黑块:深色主题的简历页打印出来像被涂黑,务必在打印样式里重置 background:#fff。
  3. 链接打印后地址丢失:纸张上看不到 URL,必须加 a::after { content: " (" attr(href) ")" }。
  4. break-inside: avoid 只对现代浏览器有效:老版 Chrome 需要同时写 page-break-inside: avoid,两个都写才稳。
  5. 个人信息全站暴露:邮箱直接明文写在页面会招爬虫,建议用表单承接,或用 obfuscate 方式输出。
  6. 案例:某设计师的”两页垃圾”:在线简历用深色主题带大图背景,HR 打印出来第一页是纯黑的封面图,第二页才勉强看到经历,最终这份简历被认为”不专业”。加上 30 行打印样式后,导出的 PDF 变成紧凑的两页 A4,反馈立刻好转。
  7. 超过两页:简历 PDF 超过两页,HR 基本只看第一页。项目只留 3 个,早期经历压缩成一行。

总结

判断简历站是否合格,用三个”一”来检验:一屏能看完核心信息、一键能存成两页以内的 PDF、搜索人名时能出现结构化摘要。做不到就说明结构或打印样式有问题。行动清单:先把内容压成单页并按”技能—经历—项目—教育”排序,再补这段 @media print 样式并实际打印一次检查分页,然后加 window.print() 按钮和 Person JSON-LD,最后放一个 vCard 下载入口。做完这些,你的简历在屏幕和纸张上都是专业的。想展示更多作品可配合 WordPress 作品集站搭建,如果要把它变成可售卖的产品页,见 SaaS 官网落地页结构。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。