|
|
$ w- T" {/ N. q& R! j可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:$ e% r. _0 D% Q, y
3 v4 M4 e M+ d$ e0 }+ Z) a8 P1.下载主题文件
$ s" k k/ }9 |: C; l& B+ o: y0 }# k- r
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
+ Q+ P' _+ K1 b) H4 o' W: M
; N; v) P- Y7 A( R- Q) V) `2.创建 Typecho 主题目录
! }4 U- o9 K u
% o4 g$ Q( Y& P7 V- G' w在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
8 i1 [+ D1 W; w3 O
2 t- z4 s% t$ n5 H* p3.解压主题文件
$ d: `1 y8 h# x; S) u. Z4 t* i+ V8 M
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:
}, x; x1 D8 U
+ B4 F' t* ~3 ?" T) hassets/
8 j& S7 n+ v- I8 k: M" G2 qdist/
! P4 x1 h$ e' ]% A+ _inc/
8 ]0 N* H( M+ G! Rnode_modules/# r7 y* C5 }$ g+ t/ @3 B
partials/, h7 {( D% a0 ]. T5 B
templates/, m; E/ B0 e# B9 |6 R% C
.babelrc! L8 v8 N8 ?$ s
.eslintrc.js
y6 G/ g& B" fgulpfile.js
0 c9 f* I8 j, \/ i z8 a( W7 H& cpackage.json
9 h' D* M& O* @- e) ]: Xwebpack.config.js% b3 }3 R: C" f! W
4.修改主题样式表文件 A. }' g* U* [6 Z% e% l% y& ^
6 f, S) W6 ~; s4 i5 { m. O2 [
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:4 [. z* V* Z, B5 ]% x4 A8 B% u
" y- z4 i3 g; x x+ k( C" jcss. K) W( [/ y8 a. j2 N# @
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
* E7 b6 g) b9 G' r: p6 j; Y修改为:
, E/ V" f" }9 P M P/ [) {5 X& Y/ L( R V+ W$ [. c! C" g2 A/ k
css- e+ W- K; N( ~, U X) |* ?
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');. s$ j1 I- C4 F8 L
5.创建 Typecho 主题配置文件
- k9 o5 R/ P- B) c8 d8 S5 T' q
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:& L! K# y3 I; R; z% S2 [) H- R( A/ X
% P1 |8 A4 n1 I6 F) L* I: wphp0 Y) J, y6 {2 s8 n# T0 D- O( l
<?php* p4 w3 o; @- m
return array(0 H; i! Y) B R* ]4 \) l
'name' => 'Heropress Pro',
9 J% q, _ R# a" W; K 'description' => 'Typecho adaptation of Heropress Pro theme',
8 m! \5 M/ G# [1 y! _8 t. ]$ M 'version' => '1.0',5 x6 _' R1 K5 f6 _9 I: @6 S
'author' =>'Your Name',
2 E8 _, s/ N& v);
! s$ X+ x' D9 }' J6.配置主题布局文件
X9 _5 x! O( K
; I; B; F! V; H. l) c y9 O! I% z在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
8 t0 C% ^ \. |. Y& b( F/ e: u1 N+ ^5 W
php% u0 \) Z, \" \& z3 D, N4 n9 d/ m
<?php while ($this->next()): ?>5 q! v' A* [7 |, H
<div class="post">2 ] m4 ? e' d+ W
<h2 class="post-title">
( h1 S+ Q9 F1 p$ a4 g" O1 x <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>3 y- f$ z, O" O) \3 e2 E8 R3 t
</h2>
4 a5 I, W5 H" q9 `4 m3 G# s <div class="post-meta">
( w- |0 x/ x- @1 O$ g- i" g1 F <span><?php $this->date('F j, Y'); ?></span>+ ]/ a+ |+ m( b O- Z G
<?php if($this->tags): ?>/ u2 S- t( F) }+ r) F
<span class="post-tags">& l7 u: Q8 Q3 U: [5 k
<?php $this->tags(', ', true, 'none'); ?>
1 F/ D# P; G1 U+ } </span>
# n4 p2 l$ M3 z- }* w3 E1 C <?php endif; ?>
' p% t p' ~& A </div>
2 `5 a! L4 P0 F* _ Z0 e <div class="post-content">
# N- L8 ~; s _/ T3 f5 b6 { <?php $this->content('Read more »'); ?>$ e* ?' n' T& f5 | y5 M5 y
</div>
" i* j( k/ k2 Y: Y' T3 G</div>
; s/ N0 e$ {6 [<?php endwhile; ?>
) V2 Q' n q/ Z: W& G7.调用 Typecho 函数 h4 A" s7 H" u( O0 J: X
9 l5 \+ s! ~; A9 c: d* X% H# [. O在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:3 f7 a; i# N, ~" J' n* e% H& w
# Z& D k4 W# b$ V, @; W" P# g用 the_title() 替换 get_the_title()。- ?2 z+ p7 i: ?7 j2 F4 d
~( z: Y, A% L* o j: C; K9 J
用 the_permalink() 替换 get_permalink()。
; o, f4 U) P+ |) X6 w% h. H( W# W3 R- ^8 s5 N, a4 i( L
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。 t) U, v$ B% ^; D. f
0 r9 H5 h1 U8 I用 $this->content('Read more »'); 替换 the_content('Read more »')。, T0 Q' C: K1 p7 b6 e0 _
" b; H) K: i% p, ?8.添加 Typecho 标记
- F! x8 q' i' M7 F2 q
" F5 y8 I% T+ \在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:4 t4 s: e" \; d, K- I* T" u
v* Y3 X% R% u/ e2 u) b/ Wphp
3 `! y* {7 g+ ^& {2 K<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>5 _" D5 o# C+ l; g. q6 T1 e! u
<?php $this->need('header.php'); ?>; _- t% }0 Q# |: [
<div id="main" class="container">
/ R# R* e. @+ q3 D. J0 \ <div id="content" class="row">( B( X# W1 W8 E6 g; M
<?php while ($this->next()): ?>
' b6 o3 y: K% }3 J <div class="col-md-8 col-md-offset-2">0 Q7 |/ H7 v D
<div class="post">
$ `5 }8 S: u( [1 O <h2 class="post-title">
+ i( X9 r$ u& T% m: U1 @: _& g <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
! c! J/ l( h- C. G8 W2 c Q* X </h2>. u6 S- Q' E. ~
<div class="post-meta">
- A: ]1 z; D0 E* F( H' r2 k/ v4 q <span><?php $this->date('F j, Y'); ?></span>7 E3 B5 Y2 H9 S7 C
<?php if($this->tags): ?>
( u5 m$ t Z' ^7 q% M( v4 X6 s <span class="post-tags">5 O( Q" I) f5 f4 R0 U
<?php $this->tags(', ', true, 'none'); ?>$ w! I0 Q0 {: m+ k$ i) [! z
</span>; T" @6 u3 f3 o( m% x# [
<?php endif; ?>
/ y) V: m! s4 T; T </div>
9 B! Q- B3 h( F7 y <div class="post-content">5 H, W0 A I/ A
<?php $this->content('Read more »'); ?>
2 F9 v5 ^8 k+ }8 |; \( W+ ?- m ^) l </div>
, r p0 q# T/ y" v; v- Y# ?% u1 d </div>% R) a0 o) n5 N
</div>
( }8 t; D2 ?' V) ` <?php endwhile; ?>* v3 d \: h9 o2 |0 g* v# q
</div>
1 F1 B1 K" \ r+ e</div>( Y' C2 R! E/ L( u) o7 E
<?php $this->need('footer.php'); ?>
9 w" j5 i3 J( M/ \" k9.调整其他可能需要的文件和代码
; o' J# t% x2 X# h
4 D6 `( h# d5 E2 S! _. R$ }. @& j根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:0 w* t4 E/ e6 O; H4 `! J% S
$ b- m, u. t5 Y4 Bhtml$ Y0 ~! {! V- P; R$ n( ?; t6 s2 ]
<title><?php $this->archiveTitle(array(
/ o3 Z {; ~ U E8 c; E' Y8 k 'category' => _t('%s'),
% r- U1 k# d* S 'search' => _t('Search "%s"'),4 z' h) q5 c5 S4 A, e: K( K' `
'tag' => _t('Tag "%s"'),' ~+ j8 B* u3 P
'author' => _t('Author "%s"'),
& C1 c% A [6 I3 G 'date' => _t('Archive "%s"'),7 V2 | s) Z1 R: n$ k
'default' => ''
) O6 p; T6 P4 Q ), '', ' - '); ?><?php $this->options->title(); ?>
1 \- L4 z/ D f# u- I- [7 {; j</title>0 ~. B% A7 S( ~- M! v0 j
10.使用主题
, r7 o6 C% S4 f: P5 |) k- G, k# U$ q9 L" t. a" q( a
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。 N; v+ `$ Y1 n1 l) X, o9 Y- b# j
1 f& w# j3 D a% \+ o% R+ o4 c5 h以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。6 n( D" a$ C) Y" m' B
4 I8 s% [5 H) I# G |
|