|
|
6 x' i/ J) Y/ D4 b, g0 b) R, Y
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:
4 g% ]0 l7 ?3 I+ T+ G2 S" W$ g% i1 n2 q; M5 M
1.下载主题文件
! H) [' S" N' @8 `' [+ F# P" E+ B) l
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
/ R' W& b% ^* d, X* ~5 e2 h, B, k! J9 a. X. |0 R
2.创建 Typecho 主题目录
& Q: I- a# c3 q0 X4 S4 Q
{ ^& |8 ~4 L/ ^5 e在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
% V5 l( l8 u x: E: h8 a6 ?" m4 m9 p
3.解压主题文件) a% v) w3 Q3 F
) u4 u4 `# P, D7 h* B! O. W0 A! k将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:' |0 _9 J- {4 m1 S7 N
* h2 {: @6 {8 s, x, d, T
assets// O9 a1 { P# X2 p4 Z. b% n9 K
dist/6 x4 B: [! N* C7 Y5 \( \: u
inc/2 E, E* G' }& e8 p& q- _4 o3 [7 @/ b' t+ x
node_modules/
) s( k7 u3 \1 [) K# i. E% K' u2 npartials/
7 ~- e9 X+ z: M4 R* b5 Stemplates/
. A6 `: n ~9 J' A% M5 J; Q Z.babelrc
* M$ d& |3 W: \2 k.eslintrc.js
2 P9 d/ [* C5 r, X2 jgulpfile.js( W7 l0 B# ]9 [1 W+ [: n, L
package.json
( f5 _% d$ G5 ~. }- R9 _: S' E8 Ewebpack.config.js
$ _/ p% H7 ?7 J2 o0 v# V4.修改主题样式表文件
$ Z+ Y. O4 E. z7 I k7 B8 g
7 p. ~0 P# h9 k' J$ w* i$ S, ~修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
3 E( @0 }. a4 `" _
3 y- t/ P% a, s; vcss$ f! I; r2 ?* `0 S
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
4 W1 P9 H( g! T修改为:
1 h/ A; P; ?* V' ~/ Y# U) \3 J! R; F& u, ]0 ^' e
css
* Z/ }% F8 y5 b4 i9 Zbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
7 ]) z3 u7 o* A0 c$ t1 g. B5.创建 Typecho 主题配置文件6 i, Y, W0 g% I5 E0 O+ T
. d$ D- g( v, E, I# _" }: ^
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
2 N1 ^# C: c5 c9 j6 B- }# b) _
. B/ u2 m# P: m" |2 wphp
$ H3 w' M1 h1 n( p: X<?php; G& y( T" I& w. v3 X2 w+ ~
return array(
! N# ~/ w% S: Y; g. t 'name' => 'Heropress Pro',
/ U+ g- b9 W8 k; t8 _$ L' U( i3 N3 j 'description' => 'Typecho adaptation of Heropress Pro theme',
! U* j- W! J8 i# X 'version' => '1.0',
2 M4 C0 |+ J* g9 U% L9 R4 i 'author' =>'Your Name',
4 v( m* k6 Q6 Q3 y);
3 O0 x7 S4 b# H0 _- j A6.配置主题布局文件
8 h# ~( m4 ^3 C/ |! B& A& C+ H% u) j% C/ V7 O
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:9 y4 z% U, s ^$ f; @. U+ V' W, @6 f, b
# @" A4 S4 J+ P1 |3 ^. y, ^0 Tphp( _$ o9 z; w- d& |
<?php while ($this->next()): ?>
2 D: `2 _* u- Z( s" B D$ e<div class="post">
- z, R# y/ B: E. h, a0 K& E <h2 class="post-title">
$ \8 a, B9 `* \$ k9 B2 b- @ <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>7 p0 |" p* u0 C5 C
</h2>
! y+ V' J% M8 P/ V5 K: M5 L <div class="post-meta">
9 ^1 u4 u1 p) ?5 d2 T <span><?php $this->date('F j, Y'); ?></span>
8 D4 R% f% M2 Y( F <?php if($this->tags): ?>" p3 `5 |% u# V+ B5 g% ?
<span class="post-tags">
+ X1 J. k: O. X; c <?php $this->tags(', ', true, 'none'); ?>: l9 `- A7 @, D
</span>! b$ d; t0 i) T$ q2 k, g2 z1 o; u
<?php endif; ?>; t. k$ H8 h/ W/ m
</div>
8 y# B3 _6 t7 S; Y <div class="post-content">( a3 t2 j s, j, X! c% r1 q8 T
<?php $this->content('Read more »'); ?>
8 a7 N; E# [+ v4 n% R; p </div>" t, i2 ]/ \ \" F8 `$ @
</div>
2 u: G I, q, C- v5 z) `, d: V<?php endwhile; ?>
4 }! a$ a+ w3 [, m, L8 g7.调用 Typecho 函数
: Y7 b& H- M: p5 m, K8 G( f/ N4 w7 e5 b/ U& ` B
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:. j1 @# @3 t: R5 C. J6 S; R0 ^
) v" Y. _& r% a, `用 the_title() 替换 get_the_title()。
2 Z# ]9 z3 h% ~3 R" ]
1 Q9 w2 V9 s# W" x用 the_permalink() 替换 get_permalink()。; P3 a( s2 T2 D1 e e1 X" Y$ @
) G; M) v0 n* B( J' ^0 W用 $this->date('F j, Y'); 替换 the_time('F j, Y')。
' ]8 i n! @3 O
8 D. K. U$ A( l用 $this->content('Read more »'); 替换 the_content('Read more »')。9 {( ]3 S) z4 W2 \) T4 o% f5 |
* _2 I% H: A* K/ W0 x% q$ q8.添加 Typecho 标记' U3 D/ H( W: @; ]% X
4 e/ r1 q& V+ P; x4 h1 E! s1 k' C在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
4 a1 j/ x' e# r4 e# k/ y" G" v* \
! H' \9 T: n/ l6 dphp+ F6 v2 y# c3 B, [/ |$ c
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>' I! h. ?: j3 K; k; O3 M
<?php $this->need('header.php'); ?>' q- ]: N( ^, L4 r
<div id="main" class="container">: L4 f% j6 i/ C- E- w0 N* k2 q
<div id="content" class="row">. v2 i1 C, I) b
<?php while ($this->next()): ?>
, ~, B7 Z+ U; ~ <div class="col-md-8 col-md-offset-2">5 U% p$ D1 l6 L4 z: k1 H
<div class="post">
1 U& y$ v$ [0 G3 L2 l <h2 class="post-title">
+ m# J1 d( K% o( L, g/ C8 u: l <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
" X4 H2 |8 O |' X- K0 l </h2>5 J* y0 Z! [0 Z3 U1 g4 j
<div class="post-meta">" M( r, D7 W7 w; X v
<span><?php $this->date('F j, Y'); ?></span>% k$ b' \/ V8 E3 S
<?php if($this->tags): ?> X9 E0 E% G7 n. i
<span class="post-tags">
- G; Z% D6 B- u3 H <?php $this->tags(', ', true, 'none'); ?>+ x& b- e7 u5 ]/ h F( W2 @0 D1 ?
</span>3 t: z0 `1 H; t f& j
<?php endif; ?>
/ C) ]" M) I4 }/ @& Y </div>
% j/ \7 E2 P3 O; i <div class="post-content">
. |1 _6 Z) ~' L' r! u5 b2 Q <?php $this->content('Read more »'); ?>
, t2 r3 F& r5 w4 v" Y4 O </div>
/ t: Z2 k" v: z0 G! \( p7 e2 s </div>
( E+ } v M1 P1 n5 `+ C0 r </div>: d' M0 }' V/ Q& P
<?php endwhile; ?>
" i1 D1 `; g8 F' G' L+ } </div># |* z$ O- n- `! j0 s1 p
</div>
. m; C, o, b3 D* h: p<?php $this->need('footer.php'); ?>
5 r: B# z! j& k+ K0 j9.调整其他可能需要的文件和代码' f: V* @' u9 m' S. \
, R& F, n0 t( ^+ W6 b0 F2 E根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:, T' R5 R" O i- Y$ r/ k
+ q+ v! o4 y8 \, {
html4 {# |! D% c& _8 d. D7 e
<title><?php $this->archiveTitle(array(
, m2 F/ F5 v% q; y9 j! ?3 C: N: }; V9 L 'category' => _t('%s'),
) z: s/ e5 Y+ o; J' s/ F8 T5 e 'search' => _t('Search "%s"'),7 o5 F# l' {1 a- q8 N$ q0 X
'tag' => _t('Tag "%s"'),+ U; T) _$ @* M* P
'author' => _t('Author "%s"'),* y0 T7 n# n$ g, j6 B$ x
'date' => _t('Archive "%s"'),
2 B" t q2 v: E0 @+ ~7 s 'default' => '' n. ~& s) F U. s
), '', ' - '); ?><?php $this->options->title(); ?>$ \2 f/ k* l8 W% V6 X0 k
</title>; T! z e8 ^- x/ ?/ |( _3 `- B
10.使用主题
- Y6 a6 N) @9 e% _7 x, P& W
3 _6 E: c3 Y3 f4 t; _- V9 Q6 L登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。: g; V$ q: ^ y& \
7 ]- I* y( p G7 Z6 X. |! p7 m
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
. d; G; W, G' B+ [1 Q5 j
9 K; K3 V8 @5 K8 I& n |
|