|
|
$ V" E2 U: G. h8 A; p2 e. _, E8 d9 U可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:
: o/ y# G) m! ] \, |7 Y+ i, b# q& C. D( _: M3 H) n
1.下载主题文件' \0 G1 H2 S$ s
- W, ?6 F1 x2 Q' R! ~7 g* c: w: j+ o
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。- f3 _0 }8 M& R3 B; M) @
# f1 x/ A8 ~4 W9 x1 O: J8 G
2.创建 Typecho 主题目录3 ]4 y4 e8 }2 Y5 w
7 n% v, S* U' B+ W7 N8 }在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。9 y5 d$ o6 c K6 M, h
( ?* Y7 u' q6 w% {
3.解压主题文件
y( q+ ~2 e, h& [- R- j
! t2 p. w' v; M$ k2 v% l将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:5 T- x& f. B6 i
; w; H5 c$ S y- O. U# s
assets/
1 k! [) o- V* s; }0 o# [+ }7 Qdist/
7 O$ F6 O# s6 yinc/- s. @' q% f$ |6 _) \
node_modules/
# D/ G" O- I$ r9 j4 Ppartials/4 F. e9 J. H5 u' D& V
templates/
0 d L% V7 N: J/ \4 h$ q; B.babelrc0 a- ^% g$ s3 r( ^% c% F2 [
.eslintrc.js
1 X9 f1 _. I& U! t( ggulpfile.js! p j* {, j+ N% }* e6 p
package.json
" C' Q3 C1 [4 l; Twebpack.config.js
, U0 n O7 Y: _$ M7 W- k4.修改主题样式表文件
~: A& B$ ]; y+ n) {6 m9 n+ h) q
# S" V9 N9 l* N( e, z9 f修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:6 P5 m! G* j6 C1 u7 c) j
/ I" W; P$ K# h5 [0 fcss( C# m) D: Q1 v5 k7 h6 s1 `
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
^% _- y3 l6 b4 R2 H修改为:
9 O) P2 [; }. m9 w, ]- W3 g. H. E! Y" N
! {) P( p# n! {css7 q0 C E" r F; |- l0 L
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
4 a! ?0 q; [7 ^' x, c: R5.创建 Typecho 主题配置文件
; v, z6 a& b( t
: A9 m- E) G7 l1 h: b; Q* [, H在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
+ D! x% V8 x, Q1 q# B' b6 L! L* V3 Z+ n9 S: @
php- Y t0 p2 {2 m) U, g# }
<?php
$ m: W; c: D* X- preturn array(9 Q% Z" u1 K5 s3 b
'name' => 'Heropress Pro',, w; T# |+ ?* y1 _* }
'description' => 'Typecho adaptation of Heropress Pro theme',4 C8 ?$ [4 e- F/ B
'version' => '1.0',
# o" n& e8 k8 d' g* A! h 'author' =>'Your Name',
9 l( W# o4 ^8 R3 Q);
# ` e1 q+ B% j" a6.配置主题布局文件& B$ S7 }8 g/ L) h. o
& C$ j( q" u$ Z6 t/ ]7 }在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:& f1 W9 O2 D9 W" R1 C7 `# f
; K" F% S5 i6 r% {8 Zphp* P5 M6 T- L2 f8 A5 @: {# L% x/ A
<?php while ($this->next()): ?>6 `1 O% s0 `! p. J {3 Q
<div class="post">
9 I0 y6 ]" [7 W8 z <h2 class="post-title">
4 `1 E6 V) o( A9 H# y <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
0 r7 e$ X+ V& s9 T* P! f </h2>, q" U1 r6 p# ?# a& h* S/ P/ D
<div class="post-meta">2 v' [/ b; G9 `+ i7 G
<span><?php $this->date('F j, Y'); ?></span>
8 ]( w0 p) l0 Q <?php if($this->tags): ?>- R/ X8 \, [' P
<span class="post-tags">; E" w, a1 x$ e3 o5 ~* n9 R
<?php $this->tags(', ', true, 'none'); ?>$ x0 k& @9 g4 G+ m! b; T( J. C1 n
</span>1 N; g# _% ]8 v: d1 _) ~0 d
<?php endif; ?>$ o C/ I# R6 L& c% S4 R
</div>/ z1 Z7 u# H% t
<div class="post-content">
: a+ u, l& i$ s( h$ N9 T- } <?php $this->content('Read more »'); ?>
4 }. e& A6 D5 j4 p3 o </div>
" y4 Z1 {- P4 k' {1 }3 U& N</div>
4 H1 H1 K7 C+ \+ |" `<?php endwhile; ?>! G/ B5 k+ H H/ Z$ H9 m4 c% v% G
7.调用 Typecho 函数8 Z# E9 V) S1 R
$ Y$ g2 x1 G# ~( @* C8 R) m
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:5 W; a5 D5 d! ^
8 B: Z6 H/ ^& V H9 j% \用 the_title() 替换 get_the_title()。
" m/ e4 z( R& L! v# G3 {* q3 [
& F! V5 F- L) z" d% y( j; r用 the_permalink() 替换 get_permalink()。
8 K: @# A9 V7 {+ Z
; y4 T- L( N" K; C7 u9 t用 $this->date('F j, Y'); 替换 the_time('F j, Y')。
9 T x9 t- a( f0 k& O8 H# x9 f
3 ]$ x8 `( G) Y, _! U用 $this->content('Read more »'); 替换 the_content('Read more »')。, L, F R: `3 Q8 l
. I0 R" s/ R4 `" a9 U
8.添加 Typecho 标记
/ U6 X( E+ r" o, S+ p0 H s, N, n0 d; t3 o
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
. f3 y' f! j5 Z/ q# @8 Z8 r5 W8 g' m) h7 o1 e# a5 i7 C
php
" c7 S; `; u/ W1 ?% t: G2 {" U g<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>3 T2 [ k8 Z5 e) n- _1 z% ~
<?php $this->need('header.php'); ?>" N) Z# r1 } c
<div id="main" class="container">" o- y3 `3 p1 A5 p, ~1 I) \
<div id="content" class="row">2 g" ]7 V) p3 J! A* l/ g5 c
<?php while ($this->next()): ?>
( P2 ~8 t" S, K5 E4 W* w& ?- m <div class="col-md-8 col-md-offset-2">. R0 \9 o4 t8 F H4 v
<div class="post">
4 E6 p/ F: b; k8 [. @: _" V" j8 U <h2 class="post-title">
9 C8 M7 {) u! }& J6 k <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
3 u; ]+ [0 Z8 l; P8 G. a! e2 R </h2>
. e# U. S* D! N <div class="post-meta">, F- [9 |% k, R! a7 }; \
<span><?php $this->date('F j, Y'); ?></span>
0 a4 h1 y) V I" \: F <?php if($this->tags): ?>1 s) L! { h8 O z, |
<span class="post-tags">
9 d! [) C8 B* x0 r, z <?php $this->tags(', ', true, 'none'); ?>- n( Q( u( q1 ]/ V
</span>
: |8 [1 c: `) B3 \/ C& v; J <?php endif; ?>7 P7 T0 d. n5 ~. E
</div>) i! m) \8 L# Y7 o8 S/ l
<div class="post-content">3 z7 u1 M, h7 g3 Q5 A
<?php $this->content('Read more »'); ?>
8 u; d' {3 c5 a$ c* d </div>
& O x$ v. K7 P' r# ~, g: N( \ </div>
# a% \& @; D0 ^% p7 A( `7 b3 p </div>
, ]1 s: ^1 y5 t) J7 c: p' U/ h- H <?php endwhile; ?>4 E+ W% N( ~6 e, t5 s* c# Y( }, @
</div>
4 {0 i% N9 p- g9 u% c/ z</div>5 A% i- a) u) Y& W. z
<?php $this->need('footer.php'); ?>
. y- [' e8 x6 P4 W/ |5 \9 [9.调整其他可能需要的文件和代码( i/ L7 P) Y. X, }5 O/ Y
: \) x! J: X: x3 l根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:: U, j: Z- W& t" A
+ O0 ?5 j+ ]1 M4 qhtml0 u/ x/ |4 T1 ?( K" @! p
<title><?php $this->archiveTitle(array(
# k6 c9 i' u' N3 L 'category' => _t('%s'),. X% h( d( L* U4 x7 R2 z
'search' => _t('Search "%s"'),
d1 y1 k3 O# U# E- G 'tag' => _t('Tag "%s"'),
8 ?( O9 T) G C; ~" w 'author' => _t('Author "%s"'),7 d& _' I7 Y5 `; E/ }5 l
'date' => _t('Archive "%s"')," A) I6 s8 L( s s$ Y3 v
'default' => ''
9 v, {% e4 i6 y4 S' a6 L ), '', ' - '); ?><?php $this->options->title(); ?>0 s r% W! u; Q
</title>7 r6 F: x/ C0 W4 F1 h: R
10.使用主题
' \, q/ X% y, W
- q7 A Z! I$ e9 ^& e登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
/ Y5 V. `; s4 f. L E; h) ~ I- N$ I0 y- M: @; u. K. J( p6 }
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。5 L# N! m/ ]8 \: ]" K1 m
/ {! ]4 A" @! _8 ~/ C$ } |
|