|
|
: A3 v; y9 \( O* I0 R* n2 O8 _可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:! B- K: j% x/ q- ~1 ]
( o/ a) X0 W/ w2 i1 Z: V1.下载主题文件
- F6 q& T7 d+ \$ y9 w% U' F& [
. S- j8 `3 l0 I# x- U! D5 r在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。5 e$ T" i' E! v g; W, n
, Y# k' s, V9 P+ M* u9 W9 Z
2.创建 Typecho 主题目录
5 _6 T" b8 N1 q) P( F+ F, ~1 B+ x+ o& N5 }, |) T, X
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。1 p" _ T! j9 G
" v* @, L! _0 B/ q9 o" j9 l3.解压主题文件8 S% w* Q* C; ?
8 a, u( j& s$ P7 E" X将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:9 ]' _1 a1 p- q# A& J
+ h9 g, |' Q- q" w
assets/
5 p# c+ Y/ n" c1 C/ a$ z+ Tdist/1 C4 `0 R+ L; _; e! _6 @
inc/
1 \4 q1 y( y3 {node_modules/
: M% t: y9 c5 B; \1 E( V: ^partials/
7 U1 O, B5 z8 C, Ltemplates/- `7 q0 {8 g4 h3 J2 A
.babelrc4 ?5 B. X4 z' C% r, D- {
.eslintrc.js6 _! `) Q$ V! p! _- J5 F( _
gulpfile.js
) Y0 @) c1 G- R, ~; q& ipackage.json$ u3 ?: \! T; s$ D: |
webpack.config.js
* Y+ s& D0 y% M2 O) O4.修改主题样式表文件5 ~* M$ Q9 R6 d6 N
' @: Y! P& C- Z修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:- G( r* O) Z$ I r& L
9 s& `9 b( q9 A: v0 x: }. C) ]css- e f* b" v% x0 G
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');. ?5 s1 Q2 j& r. X( i8 k
修改为:
& \( m$ ?% s8 r3 E& i) D3 c; T/ f2 A4 p
css
6 W$ k' u1 Y, ^! Y- w& ~" `background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');) C' _8 h& c% _( W# z" E" U# O9 S
5.创建 Typecho 主题配置文件
# n, ]6 e7 H; q
9 O; ?2 l1 m, h( F在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:) Q2 n/ ]- z4 R8 y
k i A" i; f; U6 B
php% t0 E) W) ^- m4 U
<?php# S" x/ b3 _: Y( o
return array( G7 x9 ~( w, E9 s* U* K0 l: h* l
'name' => 'Heropress Pro',( V# m: i1 h$ i
'description' => 'Typecho adaptation of Heropress Pro theme',5 m; U; C9 s& P, D$ g5 b
'version' => '1.0',# s, [5 \% O k, G5 l; _; u
'author' =>'Your Name',
. ?. @+ k, p9 ^. b3 R' R5 ]) X);
% f8 l) {. Q! D1 N6 y3 h" l. P6.配置主题布局文件
5 Q$ ~# D$ X5 r+ s# e+ C! n6 _& a% W* i, I1 E5 H
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
( g. k+ z/ f1 \8 x7 R7 ~# x/ X. v2 w% x3 F- ^
php
% ~0 c# `4 T$ ]* w8 {9 K<?php while ($this->next()): ?>8 T) b; O8 y: `) \. j
<div class="post">
) E; ?' u+ r9 O% y <h2 class="post-title">
6 `# j5 _+ {% V" d <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>, Z. ^4 T6 T/ G, I' M5 l0 ?3 ?1 D) V, S
</h2>
2 t9 q( ~1 B- P% ~0 X8 m- N <div class="post-meta">
3 i2 Y4 D( D9 N' I: A, f <span><?php $this->date('F j, Y'); ?></span>
' m+ R( i5 H0 Q5 {' q9 t/ K <?php if($this->tags): ?>6 u$ ]7 d) w, Y6 K+ S6 [" }4 |
<span class="post-tags">" t- M1 C8 K7 `/ A& d; W! }& p
<?php $this->tags(', ', true, 'none'); ?>
5 C" l/ Q+ l" F2 Y0 s </span>
# [8 Z: F% x* k7 z9 L4 [+ p9 b <?php endif; ?>* K. u' j: l' R3 I: Y
</div> k+ m7 L7 z$ \+ p: C" a- y
<div class="post-content">6 [* p: s2 f7 G7 i
<?php $this->content('Read more »'); ?>
9 c0 s7 U# d+ ? </div>
" k$ w$ |- S `5 w, v( e</div>8 ? ` a( r9 d! b; Z$ n' ]8 O! [
<?php endwhile; ?>
& P" U5 Q* U9 b+ T% n2 m+ K8 s6 ]7.调用 Typecho 函数* ~3 m1 i E2 B4 H- E2 @7 ~
p# }9 O- u# R8 K
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:2 ?0 d1 _8 D! C' h7 E% Z, B& o9 t
! z0 X" ~% J6 Z1 B+ h2 i- q用 the_title() 替换 get_the_title()。: [% b" o4 v7 Z$ M5 _/ a) C
: y0 S0 D7 D5 _/ u用 the_permalink() 替换 get_permalink()。3 z1 L$ r/ B% }! R& |2 w
/ \/ ^7 p. B, j+ |用 $this->date('F j, Y'); 替换 the_time('F j, Y')。( m) K; m2 \/ A
8 Z& Q4 L, f0 s$ n# J/ d0 R/ h( V用 $this->content('Read more »'); 替换 the_content('Read more »')。
( @! b6 Z- D2 @5 i$ T. w% T- Z2 p/ `5 f/ W% e& P' I/ G
8.添加 Typecho 标记# C0 c) n, e6 q$ c+ P9 K
6 \& i1 W4 p2 y在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:5 H! p; e) Y- l- `' @5 v; g
0 r. R t5 S4 b# ^6 Fphp
/ A! X3 O: n+ ?3 P<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>% A; w0 x, n4 V' Q
<?php $this->need('header.php'); ?>
& K$ U1 z; c3 p. b<div id="main" class="container">
) S* m% l% ]- W8 S4 m <div id="content" class="row"># C7 H2 H# B" ^2 b9 y# ?) ]' k2 G+ G
<?php while ($this->next()): ?>! B' G2 g9 S: l$ J4 z
<div class="col-md-8 col-md-offset-2">2 k' q h% x0 q- g
<div class="post">
, ^ J0 ^5 s* R* o+ c0 i- r" W( Z: Q <h2 class="post-title">; {2 E6 V. [) U0 M c
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>. n0 ^, q/ O Z2 K; \ g
</h2>( ~3 D+ T+ @( l
<div class="post-meta">
$ {6 N! M9 H! A: g z <span><?php $this->date('F j, Y'); ?></span>
7 I3 D* Z, r+ W# z# l <?php if($this->tags): ?>
4 W8 {8 ^5 j7 P1 s& U \( h; J. L <span class="post-tags">/ E) W* w+ H# ~1 k4 ]. J6 [: b
<?php $this->tags(', ', true, 'none'); ?>/ F: c0 f8 W. I* T
</span>
Z3 B4 }+ }+ ` <?php endif; ?>% w% F, D6 H9 s& \+ c3 i" j
</div>& y- W' M$ j! Q# b' K( e
<div class="post-content">7 I7 a4 u# O. e8 f: a3 V6 K
<?php $this->content('Read more »'); ?>6 Q$ O: G1 ?( Z; b
</div>
1 ]! i- D+ U+ V4 W </div>! S2 [+ h8 _9 b/ [: T; G
</div>
& f- j" c4 M; f V6 U <?php endwhile; ?>
5 y2 E4 U7 n+ H" F! g* B </div>: d' Y3 W1 K7 _
</div>
( [2 Y9 D' F, k$ b" k<?php $this->need('footer.php'); ?>4 x% s9 d* l" A: M: l* l( [
9.调整其他可能需要的文件和代码- r- @' Z7 g x/ h+ M$ Q
4 g7 |+ @; B$ s' N0 o+ n根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:* I2 x, P" h2 a
$ I( l6 D. k# c/ R& @/ ?3 q' p
html
4 W$ j, D0 u l<title><?php $this->archiveTitle(array(6 g8 O9 X/ s8 c" H8 y
'category' => _t('%s'),
3 ^7 B" r0 {# o- C8 ` 'search' => _t('Search "%s"')," w% u) h, e- o3 f* c0 ?
'tag' => _t('Tag "%s"'),- Z2 y' Y( |% m. e6 t
'author' => _t('Author "%s"'),
4 t2 t" B! D: A7 E6 u 'date' => _t('Archive "%s"'),; ~( {( G& n# K( s
'default' => '': M" s5 U# j& y8 ?. q3 M3 `
), '', ' - '); ?><?php $this->options->title(); ?>
d7 I0 r& A$ ^; \8 ]0 p5 x6 [</title>
! u8 L+ w- R; m( X# J8 p10.使用主题
4 P+ U7 l( I1 A5 L7 y1 }' N+ q) t7 Q% I
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。7 G: f/ j( l" [: }* ?1 z' R/ n% z
, T1 \& _9 ` M, ?) }以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。7 n) j- v; [( R9 u- t4 U
" K0 ^9 t$ L8 m! ?$ J& q |
|