|
|
; n" q" {. V3 d( k
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:
! x7 P* H E0 ^' v# w; r' F3 x+ Q+ ]$ |% v! P; V* C) M* J
1.下载主题文件. y7 _ K3 K5 d/ f3 |4 ~4 f
& ?) z8 Y5 g) Y# T& s0 N在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。6 P* @/ C6 k* x3 V8 ]# `, N
1 s; e" o- @" }3 M7 ?. `/ V- S
2.创建 Typecho 主题目录* l! ^+ F$ D' R0 Z$ J
+ O7 q% m& @* G: p/ a8 `
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。$ Y! ]# N1 g) L3 m. i- D0 E
- W2 V% }2 a p8 }/ l3 X# e3.解压主题文件
' @, m0 E* x. r; j; |# U8 i: r' _; n2 x6 E
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:$ \- P6 o/ i$ S6 J& v8 s D# w+ f
$ y/ a4 [+ e! Q3 t) b6 ^+ b7 N
assets/
. p+ _0 h9 |" ?. [6 @$ X/ f- Fdist/
; Y5 L; `% O3 x9 v+ N; Yinc// f) T; l: i2 \
node_modules/5 |3 L! h" j7 O+ n X
partials/
! F0 Z; u& }6 O8 a2 c% Rtemplates/
& y! ^2 ?' d5 @% m$ P.babelrc6 u. l" j! Q! S R( H( }: S
.eslintrc.js
8 s9 K8 b/ K# rgulpfile.js
; h. a/ ]; T( [package.json
+ W! e: D E8 S3 [webpack.config.js
) r% w, o* x* a- W) m, X f4.修改主题样式表文件
1 M5 {7 [- F; F2 H z2 v/ o- }. J4 f+ x; Y4 j6 }
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
! k. Z. ?! `* C6 w$ ]* |: S& }7 V) A. v! B
css7 f1 y1 K$ `8 G P) @
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
4 m# G2 V2 G. O% R L. U修改为:
* e! x8 p5 z. i) c- y/ I+ m+ E% D7 L$ r
css* Z7 z7 ?$ c, T0 _! C
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');# I- d& C" Z, I9 N; t
5.创建 Typecho 主题配置文件
3 X4 d' F9 y7 w4 ], m @; F( \3 O7 h+ s5 H$ ]; g- y# \
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:4 h0 L* @, k- [
, u8 P' n X! {1 qphp
' H8 O1 Q; f: f, B- @% y3 |1 b<?php1 P4 A, ^; ]' ], N/ B4 [
return array(
& l) \+ T+ n0 k& k, s 'name' => 'Heropress Pro',* A, t, |& Z0 l0 v+ O( X
'description' => 'Typecho adaptation of Heropress Pro theme',
3 k) M2 [& {3 z l6 e 'version' => '1.0',0 `7 {! p2 F6 ~% y7 \
'author' =>'Your Name',
. W8 d$ a6 u: J# k+ ~ g2 @);( i2 H+ \ g+ U' E+ \' |5 \4 R7 }
6.配置主题布局文件
- W6 J$ a& b2 H8 M6 e2 k3 G# ]+ u Q6 ^" a
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:; w0 y6 |/ B6 D* G) p! f
. m- V# f- _. O7 y1 u. aphp
! a3 W- V9 X. O9 ?<?php while ($this->next()): ?>+ Z D/ ?( v5 t, d' ]
<div class="post">
: y5 F* ]0 L' t- \7 r3 d2 U; ~ <h2 class="post-title">: v: k! H3 y( m2 d) q
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
1 u6 q! ?. `3 ` `* ` K </h2>1 E K! k( x/ k. n: A3 t; s8 \
<div class="post-meta">
: P- m+ z! T/ `$ i% R: D <span><?php $this->date('F j, Y'); ?></span>9 n1 v5 }& e8 \' r1 A
<?php if($this->tags): ?>$ K( w9 l( ]0 G( R
<span class="post-tags">
3 ]3 Y! C ?' V0 i- t* I' r$ s <?php $this->tags(', ', true, 'none'); ?> ~3 N0 P+ x* v: @0 [8 f
</span>/ v1 P& N: f% C6 x, }/ \
<?php endif; ?>( a' n& F' u* ^7 `7 ^2 N( W: j
</div>; w' g3 k9 ], Q! T& a0 l
<div class="post-content">
% l$ A8 U7 m6 ^$ Z' k <?php $this->content('Read more »'); ?>3 a# |' s" U/ u9 \
</div>
5 K. ~0 d. ]( x$ {" U</div>$ g! B' H a3 N3 f
<?php endwhile; ?>, L- s2 z% L! Y9 L. c& a1 U
7.调用 Typecho 函数% Z( E$ G s$ {+ d) X6 w
' B7 o2 `9 E5 `) K. k- N4 \, S在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
- T( S" j2 ], L" A5 q/ L8 I9 c. H- r5 y/ S- e, i& r
用 the_title() 替换 get_the_title()。
2 B% k; U% d* G& u" T1 m$ b, @" `% z
用 the_permalink() 替换 get_permalink()。
/ m# o4 g; I3 N7 A5 u5 _% N* t, d' p; z$ {1 d( P% [$ F3 r, w
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。
) k1 `& [1 |8 o: v$ P9 m% C6 S5 |0 c
& `3 t# b7 q7 a l/ V+ c用 $this->content('Read more »'); 替换 the_content('Read more »')。. H! v1 i/ v* B! f) [
; c1 i+ t( o1 k5 w+ i
8.添加 Typecho 标记
1 v# }0 z$ Y. f( Q$ G C! n) C8 m9 `. B* u2 J7 Y/ a f$ \
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:. D" M8 ]2 [6 W# Q, |9 Y
) K) E. K- v& O `) _
php1 Z" I) h0 e: e, ^. ^! M! ^* x
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
. B% A- H+ j( w* V( Q/ g<?php $this->need('header.php'); ?>
$ ]6 {' p$ l# S g<div id="main" class="container">
; ^0 A9 ~9 {3 t) H9 W <div id="content" class="row">0 ^" G T& y5 I. b8 k& q Y p
<?php while ($this->next()): ?>
$ m' {* m; h. j/ @6 F8 f2 z <div class="col-md-8 col-md-offset-2">. F) |2 u5 y5 L5 ?' \( D
<div class="post">
# W2 h* i$ [3 C' |' O# ^, V5 n <h2 class="post-title">
& |4 b4 |) N& m3 s <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
- S4 Z& ], G' F5 O! Z' R </h2>, Q! _ n s8 c9 k2 S- @7 E
<div class="post-meta">. U. u9 C5 r% k7 G4 o
<span><?php $this->date('F j, Y'); ?></span>
! v, W# p7 t; U <?php if($this->tags): ?>0 z9 P1 @# q& i0 ^( }9 K
<span class="post-tags">( Y' K$ t% L5 P8 R3 g) c
<?php $this->tags(', ', true, 'none'); ?>; {& L! U# r6 r8 k: ^- P
</span>0 g& j4 f. z5 l5 o( P2 g- H/ L
<?php endif; ?>6 X4 y7 l/ P, B* K `" B
</div>* ]& s+ `6 t- K M3 c$ J( P" O
<div class="post-content">3 u+ K. Q7 {# t0 y% o% U
<?php $this->content('Read more »'); ?>8 E& c. t, d3 b/ t8 J1 R
</div>
( ~# j. |; ^' A' b& F </div>3 p" Q( x. }# _: `# r% ]: p& n
</div>
- r# X! B3 j, I! I9 d; j <?php endwhile; ?>3 U" ^0 d' D. m1 _
</div>
& P6 l& v4 G9 Z0 G/ X( z% g d</div>, b8 |% O0 [1 p7 q) \
<?php $this->need('footer.php'); ?># ]" c1 ^# H) t- J
9.调整其他可能需要的文件和代码
/ j. y' c. N+ O2 q% q) {, g
9 [) D# f8 i) e- G. Z- Z1 }根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:; D. I3 c( a5 ~6 J) K. n& P
; ]9 u* a; u2 ~! j3 Chtml( M3 m7 t0 ]( U4 [; L, \6 O
<title><?php $this->archiveTitle(array(
1 U& A8 d* E) V) U0 b# X 'category' => _t('%s'),
: d! K! F7 |" W j. }" A0 x 'search' => _t('Search "%s"'),
4 E8 U, r9 b4 M# i9 z3 z3 } l6 ]4 i 'tag' => _t('Tag "%s"'),
+ d1 \" Q/ I; T$ [1 K; h 'author' => _t('Author "%s"'),! |% m; ]7 I' z8 u# \
'date' => _t('Archive "%s"'),
* C% M6 a- B$ r' |3 ]7 e. C 'default' => ''
, K" ?; X7 s; N, _- C1 R' y& o2 ^$ M ), '', ' - '); ?><?php $this->options->title(); ?>2 \0 w8 }9 x l+ e3 S
</title>3 T/ v7 J' k! g4 y4 G8 m
10.使用主题3 q5 d' c. ~' Q0 m! n
8 L; g1 S' _$ _+ ]# W) h) Z
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
+ A2 _; H2 n# A4 ~, B! d t+ c/ i( b% R, t
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
9 q0 J+ y/ w7 V; I0 N$ y) f# |; y5 t4 R
4 l8 r& p( k. M |
|