|
|
) i. R x ^4 i% e$ F
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:5 o5 I7 f3 A1 u: @) A
4 y, h+ U: d: p. Z( f
1.下载主题文件4 S( ]+ g( o! f% p) F: k# N
- b& h1 J2 j k9 N4 ^$ L
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。3 {# r7 ]1 N' L1 B/ N, i* E
* g' ^( |# ~. e
2.创建 Typecho 主题目录% e' s7 B& r6 a6 t
1 V9 J) d3 S! `# u( j# H6 H在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。 ?; `' O$ V, g" w* ?3 o
" l/ {$ D6 p7 ^( y1 f
3.解压主题文件
6 x( y% V& U4 q9 F7 _( y; C
& i* [8 F3 D- \+ J c% Y将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:
+ N5 }: o; h- ]# Y+ F3 J* n8 V) L+ ?( T* B1 N! R- v0 S+ e
assets/
% K' w5 W8 s4 W: t# `6 ]0 rdist/: ~: G6 W( I s" y8 F: l# z# p' F
inc/3 c8 M0 C! @' ^
node_modules/2 B5 n& z2 J% d- U N, {7 ]
partials/
, L9 G; g0 l% u$ \; T6 Ftemplates/, r+ @- P- q; {1 t0 q" ?
.babelrc; ?0 f5 h1 J: Q; k
.eslintrc.js
% K2 S6 _: X# T$ mgulpfile.js
3 C5 o* L/ m/ U% ~9 y0 E; Upackage.json
& z8 {5 W2 o! D$ j9 \webpack.config.js, `7 I; O8 i k1 _' [
4.修改主题样式表文件
: j. J G) G) A) k2 S* r
% x9 E: Y8 B$ z修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
' Z; p5 k# e, A% T! D& c2 E4 H% [) j4 ^- M/ t% G/ E# i" `# h+ N# W6 @) O Q
css
t& j v8 i$ Y& Fbackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');1 V5 h7 S+ T% J( {8 A' G6 {9 e7 K6 o
修改为:0 V; l- l2 N \' }- l. B
8 a- f) K& V: \+ c6 Y5 vcss
) O# b4 i; I, u( rbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
/ c" D( O* l' `9 V5.创建 Typecho 主题配置文件
9 \% ^$ n N2 }6 u% N( c. L& d/ n6 O4 t4 Y' F: F
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
* r9 k6 Z7 X0 r. w; C3 x, i4 c4 H6 U# x9 R8 i2 R1 Z, F1 ^, B. m
php
9 R! J8 J& M# P<?php7 c* A/ ]+ b; B0 n" }
return array(6 }* c% ]1 q7 K+ X6 g
'name' => 'Heropress Pro',2 a3 d' t' W# A$ f( w
'description' => 'Typecho adaptation of Heropress Pro theme',
6 P) d+ q% D4 m 'version' => '1.0',9 N8 c3 A9 u" H+ e1 S
'author' =>'Your Name',
9 c$ F4 v; H4 S);/ T, v5 r0 W0 H) W8 y8 L8 M
6.配置主题布局文件- M- P# y& j% L/ \
% Z% K* O: f& @8 v- W) Z1 u
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
7 H) \# \' y% |: q4 j! ?/ B C+ U3 \5 ~" c. M; I$ [; K2 q
php) ]6 Y \- F% R6 {
<?php while ($this->next()): ?>; r% z7 A% z X ?/ L
<div class="post">
+ q6 V" D" M+ z1 }$ B <h2 class="post-title">$ m' n; P: C- M/ h0 d
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>0 x, V% t0 [: ?
</h2>
: O* \- m, E1 F/ u4 U <div class="post-meta">
3 b# u' u o+ u4 j3 _- X <span><?php $this->date('F j, Y'); ?></span>3 B _8 s: a# f* o
<?php if($this->tags): ?>- k5 [% |' @% z5 w$ P: I
<span class="post-tags">
( y% ~- t: l+ F' ]# p# A( O6 R. m <?php $this->tags(', ', true, 'none'); ?>
3 p' a6 t9 [# w! h* U+ b </span>
& L, Q' d( x, ]4 ~ v' P/ u8 K <?php endif; ?>7 L& s( S* |8 y; }4 i
</div>' o9 T) q$ e% K; [) e8 G
<div class="post-content">9 m# S5 L9 V( h5 z
<?php $this->content('Read more »'); ?>9 Q6 w: v4 n- X, Y
</div>- ^# C" k) k- a8 r/ D
</div>
, M* V! R( J6 h" L B<?php endwhile; ?>
1 h$ o% v/ F* q! h2 K! q" Q7.调用 Typecho 函数 e0 L1 }5 F$ k9 m0 S
. j" u0 H, E( a/ v
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:) M2 c% r; P$ a9 R) ? c) P0 I* A2 i
; j$ A0 v9 z- ]% P/ C( Q+ m& f
用 the_title() 替换 get_the_title()。: T; H% U, i. `- N( ?
& F) I [3 A6 ^! _
用 the_permalink() 替换 get_permalink()。6 _( _7 ~: i: l* r) b
. f3 f. u# F" s
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。# d9 E3 n8 q; \7 L! | v
5 k: ]; a0 [6 W, y; l2 @- l2 z用 $this->content('Read more »'); 替换 the_content('Read more »')。4 I e x6 T' h# [0 ?1 Q
* X) C" i( u* ^2 i9 w( K8.添加 Typecho 标记! r p9 {& a. q/ B" a7 D% b
9 W0 w* x' m7 l" h在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:$ u R/ M- N, i; q
7 m' _! ^+ t2 l$ Q: P" f; Pphp, N( w$ y3 j+ V0 J9 |* j
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>. T3 X* G8 n2 j, g- y+ v
<?php $this->need('header.php'); ?># r9 V* i7 \& T3 Z8 e
<div id="main" class="container">
, S, M, J) _7 D6 F2 ], h* h/ ?$ r <div id="content" class="row">
" {" d( p+ W; k% L9 n2 V <?php while ($this->next()): ?>
6 \: f* |) ?7 q2 \: `9 A <div class="col-md-8 col-md-offset-2">
. Q, H8 y( N6 D <div class="post">0 b3 ^9 j) O. U6 f
<h2 class="post-title">
$ y5 j% ^6 ?* o <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
9 Z( N# W; n: k( t, u& d </h2>3 F; W9 J; H* G" _# K% e
<div class="post-meta">
: w8 E4 T5 q w+ E1 ] M! D& i. M <span><?php $this->date('F j, Y'); ?></span>
* B$ ]3 `3 }9 g% n4 m <?php if($this->tags): ?>9 \2 v; v) `+ _, q( f1 s: w( H
<span class="post-tags">
6 |. N1 X8 t( Y+ i2 i4 g <?php $this->tags(', ', true, 'none'); ?>7 @4 a0 g' |3 M. K! w7 F6 l; b; Q# n9 }
</span>+ c- r7 x/ |' T6 g* n# x
<?php endif; ?>
+ Z F& r+ G# g( D7 B4 H; M </div>; E0 B1 L# E1 p+ ^: D! W' V# S
<div class="post-content">
1 M) r0 j7 w. d+ }1 R& t3 D7 J <?php $this->content('Read more »'); ?>0 i" G& S) Y' S6 W( P8 t
</div>% G+ Y! C1 }! B. r- v( J
</div>% M8 V7 }( Q9 S) M' I
</div>
+ W; b' G0 Y* s, y$ q0 _- r <?php endwhile; ?>
1 K, w! {) u$ X0 M </div>, G$ k' W6 F2 g% M( @4 q
</div>- h- X# r. H$ o$ G6 \* |/ x% a
<?php $this->need('footer.php'); ?>- D/ H8 M& M0 k1 ?: a. i
9.调整其他可能需要的文件和代码
* @; d/ R0 t# [6 K. ~' x; K) ?, J& ?7 f& \2 Y! s* c
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:1 A1 g0 [3 h2 W- H
) ?! `+ A# h4 f0 \4 uhtml9 b+ ?" |! \/ R+ B
<title><?php $this->archiveTitle(array(
8 o8 }6 ^; U+ {' k, n 'category' => _t('%s'),
" W( Q: N+ E* t, h 'search' => _t('Search "%s"'),
! r% K! y$ t! S' P+ h+ A 'tag' => _t('Tag "%s"'),7 y% u0 \# z% y- t. [+ J
'author' => _t('Author "%s"'),: c& \$ b% k3 q h" Q
'date' => _t('Archive "%s"'),
+ h) X$ w7 E) x 'default' => ''
, D K7 z2 O j. Q7 V- P$ J% B ), '', ' - '); ?><?php $this->options->title(); ?>
7 Q( E, F$ W2 c- B% ^! h</title>
6 V d8 L0 a+ R; `10.使用主题- k. P/ u: K" J0 }) k& I
- K4 O( R6 f j* b( |3 q登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。: w! v4 f: P3 B# u
4 u, X4 M! b7 @# M以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。0 b" s' w# G. W) G1 l+ |# r' }
1 [) F2 N" T0 M& t* l
|
|