|
|
- b$ j4 g" c; q4 E* I( L
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:/ U% p$ u! B$ ^& h5 z9 _+ ]2 i
: l2 t' q4 f* G: k$ [* S1.下载主题文件$ ~! W; b1 V* e
0 n6 c* Z7 }& T在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
6 P: o/ `4 X" h. G3 @& L2 ]
0 ?+ u7 h3 W8 F( ]& |2.创建 Typecho 主题目录
- |4 F' Z* g3 r# z+ r5 M9 z- Z. t
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
( s, D% l6 |0 M% W6 Z6 i9 s) E* M; l. P8 _: n- u
3.解压主题文件
3 B% L& }1 r5 Z4 u$ Z0 c1 _* \; Y& w t4 L, B5 X
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录: u* Y( ^! t( e, R- ], h8 B9 Q
$ H) @; t) V5 {) N/ B' A" C* e7 D* s6 Dassets// U+ p. f# u& I
dist/6 j& t% G1 c4 q$ K" E8 d
inc/
* p9 V4 x( p, U. O/ y) p: |, wnode_modules/
2 F! k. R- a% l3 Epartials/
$ ?1 _5 S, E; C- U5 p2 K3 Xtemplates/; n- p& D' z ~
.babelrc
* p) A4 d) G3 ?3 ?6 Z4 M9 F" W.eslintrc.js
/ m4 [# o& S( j I5 k1 A) M5 egulpfile.js
9 o& k' V# S6 o) Opackage.json
, F5 \5 C% J# |, m7 t/ T4 R& z5 hwebpack.config.js2 ~1 }5 @& @4 G7 z% e$ `
4.修改主题样式表文件" M2 v# N- D* y8 z+ j. `( f
/ Q& b) X% m. q2 D- [1 F修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
# l/ z! r# K0 | N, r# b, l3 [
5 i2 T' G2 K0 F4 f; r' I8 w' Ucss
, w8 ~& q; J, ibackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');0 M2 g' s# D! ~3 z& Y9 ]$ f
修改为:) T8 A8 @8 \ o' A$ x
- L7 Q: P2 Q6 [5 p8 i# ~+ [css _: h3 M& j: q1 @; e9 k4 `
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
" t; j' S* Q5 X5.创建 Typecho 主题配置文件5 i- u W6 I- ?
* }5 l# m. B9 E
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:4 z9 r; w; ^- i" Q' J4 T% J3 |
, W' {. `2 t& m* c, q, q4 H! p$ Aphp
$ y, z: v" E& S+ d1 i( F<?php) q4 h' c5 _/ a- H
return array(
2 P* a. J) p, j8 _9 r# B 'name' => 'Heropress Pro',
- _' l3 ~+ ?3 |/ N* K# J# s3 z+ A 'description' => 'Typecho adaptation of Heropress Pro theme',7 ^: J, ]" d( [. E6 E6 w8 V5 v, k
'version' => '1.0',: z# j& ?1 M) v/ q- K2 p
'author' =>'Your Name',
0 Q' f7 O3 _! m);8 b7 _! a \( f3 x/ H9 Z
6.配置主题布局文件! @$ X- Q6 h- F2 x; j/ ^
8 W3 g; V, Z& H& K2 r在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
- v4 k9 \+ z; v; Y
5 J& P4 w" {) @php
2 Z4 j5 |) }$ m" i5 C9 |<?php while ($this->next()): ?>
) ?9 t* q2 m9 }! g<div class="post">$ m* y5 P0 c i
<h2 class="post-title">
- ?" {/ \+ V! S, |! O <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>5 m$ f& `# y' A) H% N: D2 @
</h2>
/ i# q* K$ t) S8 I <div class="post-meta">
) g, M! P S) q7 D, R <span><?php $this->date('F j, Y'); ?></span>) Y6 u" I* Q! R" d$ S# }! p
<?php if($this->tags): ?>
) z L$ w* g4 m! R' K <span class="post-tags">- T/ y+ S2 S9 m# h" f
<?php $this->tags(', ', true, 'none'); ?>& k: X* e7 t B; U1 N
</span>
7 H4 o5 c; L+ n% _ <?php endif; ?>
4 I: V2 y4 ~, @# B3 _9 p* _ </div>1 q1 j8 G8 s# j
<div class="post-content">. v/ [5 d& N# r+ u
<?php $this->content('Read more »'); ?>5 o& w8 U- Q6 C# b9 i9 F
</div>
' u5 S W8 k( @8 ]</div>' c4 n" Y% J$ l" c N3 H
<?php endwhile; ?>
$ ~2 g- ] z6 s/ B! r* r, C! g7.调用 Typecho 函数4 B9 k# @" o" b3 G7 g9 p* v3 z' f9 }
$ o& w! @8 `4 l3 b
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
3 i, T2 T8 w9 N- B3 B8 t& ?, n$ o
) Z7 {( C( O( L2 A0 e用 the_title() 替换 get_the_title()。
! p2 K# K# T! e \
3 ]4 U+ s0 ]* o用 the_permalink() 替换 get_permalink()。0 V: @) \) h# M* w/ z9 r5 A9 ^
- o0 F% F& j1 s7 K& p7 K
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。. d' W. E: q d6 r8 I5 U- [( C) T
W8 T2 F) `5 I2 Z+ `: m用 $this->content('Read more »'); 替换 the_content('Read more »')。
8 Q8 _8 L0 @9 N8 @
, u6 V4 U+ E2 h+ Z1 C3 J8 x0 b% M) B0 t8.添加 Typecho 标记
5 s# S. V' F% G9 q
7 d. @5 ~5 {+ _: ^% a在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:1 B* P- @, V$ h. I$ r1 z" e' b0 `
6 X! s- v: f: N$ m" s' [php
. C; U0 o/ z, ]4 K( ~* }2 a<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>5 D% ^1 Y# O8 r6 O6 O
<?php $this->need('header.php'); ?>
/ Y$ _! C9 c$ {/ O<div id="main" class="container">
' c# J' ~3 L& ^- a" n <div id="content" class="row">0 o; a, A+ c$ V9 s( S
<?php while ($this->next()): ?>+ Q/ u9 y+ w4 }" N
<div class="col-md-8 col-md-offset-2">* ]5 u$ k2 X9 }- J t8 y
<div class="post"> {0 }; B6 W2 `, K" p
<h2 class="post-title">
3 B/ M- D/ r' l: ~ <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>, C# b& B0 d& e. c* [5 s* `
</h2>9 h/ G# O% n2 `6 S7 ~
<div class="post-meta">! N5 B9 A4 m$ O+ E. v. |9 d
<span><?php $this->date('F j, Y'); ?></span>" ^, V$ u/ l# i2 K* ~9 l
<?php if($this->tags): ?>
( E* B, A- u0 t- B- i" f <span class="post-tags">
" v3 k' x* n' j' p) v, ? <?php $this->tags(', ', true, 'none'); ?>
0 F1 |6 C: y: V6 n; y2 q: S; U </span>
& [1 S2 i" t- a+ g" x9 q <?php endif; ?>% m% W @8 @+ V& b0 y6 F$ |" ]
</div>
6 I1 _" W* [# q Y. ] <div class="post-content">
9 J1 \, y- P; w8 J <?php $this->content('Read more »'); ?>& t( S7 F6 t5 N7 l b) T1 m
</div>- h: ]7 |1 ~. ?
</div>
6 f# c) S9 |/ x% M$ V" k P- x8 o </div>- R7 k$ i R) V0 J
<?php endwhile; ?> D# Q4 A6 a& _9 x* S
</div>& X3 x. t. @) I: h( `+ {' \
</div>
; R* K" M, ]2 g. e0 z<?php $this->need('footer.php'); ?>
0 ?. L) ^7 E* `$ G& m9.调整其他可能需要的文件和代码9 `- E1 b! w7 c( m* I
2 z; l' R. j/ @: h; d
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:
7 y% e( v% z1 D" W+ L# O: ?1 ]0 a. k6 g" F
html
& H0 s; A4 \) e7 K' i<title><?php $this->archiveTitle(array(
8 b& g2 u2 z2 b, U% o' c 'category' => _t('%s'),! b8 Y8 S( a: U
'search' => _t('Search "%s"'),
; Q+ A: _3 u, _; D/ X4 E. \+ [ 'tag' => _t('Tag "%s"'),5 V1 S9 D1 v$ T
'author' => _t('Author "%s"'),
) c$ E% f# v+ l5 T# s( x3 k 'date' => _t('Archive "%s"'),
( t o5 R! L% w 'default' => ''5 G" I$ ?- e1 U& [; [
), '', ' - '); ?><?php $this->options->title(); ?>: T' o/ y0 l2 l! d9 |' d
</title>8 P: d& s$ C2 k6 y+ @* h* i& Y
10.使用主题4 G0 Y5 _% P6 D+ s
9 ~: I" \. A$ e% Z登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
4 p+ E' f* h2 ?* ~7 j. b0 W
& g2 r# W' w N以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。3 t p& E0 ]5 Z( T0 M1 {
/ C& [4 s* I! c3 I |
|