|
|
4 n0 I; `# x* `' b+ Q
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:! n0 L$ R/ |5 X0 D) B
1 {4 ]- N1 }, D$ z) Q
1.下载主题文件
1 z/ l; G7 [2 Q& K- _' c' ?
" D, c+ r' }2 T: l2 [2 y在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。, q y$ F* f% W* p; B) j/ A4 o* ?
3 R0 s( D* x' i# W9 l0 s
2.创建 Typecho 主题目录; y' d8 b; Q3 D. J6 ~; ?3 a
N8 I+ S4 u8 L. e3 v& h$ v- N8 ^在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
7 N& i3 ]1 |% h& B5 Y
3 l1 j- @) w2 I& r6 j3.解压主题文件
# V% e& {2 I# c' C8 j
8 ^% k i7 K- c6 l将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:
: O ?8 `9 m) g% v9 }+ j c7 a+ ^" n
assets/4 h8 G4 ?: ^9 @9 n' L
dist/. u+ ~4 y; E( u2 q s1 s' e; r
inc/
# O! H! z0 H# h/ c7 ynode_modules/
% `1 f. h3 }% K+ q+ Mpartials/
1 x$ @) E$ t2 C1 htemplates/ @% D0 A1 s. {) h7 N; I- N
.babelrc" p& x$ B( f8 \2 V
.eslintrc.js3 s+ ?! Y" c) v
gulpfile.js
& S: O# d6 S7 x: J, fpackage.json# B/ m: k7 l( l9 G! ^( [* K
webpack.config.js
6 u6 u7 \! g$ b2 r% r4.修改主题样式表文件2 q2 t( o4 r# I2 X* w, `: p3 t2 r9 W
. J/ z! ~. Q, y* k4 h0 Y. K
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:) M9 j! m+ x' b9 T* ^ [: z
" H& n: Z1 B0 z9 Lcss9 u2 X' A, h0 L i* b+ u
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
$ G( x' O% E: {. z( R; ]- G9 H, ^修改为:9 S. |- G, l; ?
2 }! K- b, d9 A) g* P# E
css
- _2 B/ ^ @ g2 D4 n, ?! @background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
8 m/ ?) i2 s; B( C% f0 Y/ j: \! d; k5.创建 Typecho 主题配置文件0 Q; k& x: J/ P- R6 h
$ E0 D! n; y! {1 K! Y" K& L
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
1 i+ L2 \5 o `! f1 n7 u# S& @! T
php) m$ k# h+ |" i& ~, t% C9 N) \
<?php# W R, U' B+ W& a- `, s! L
return array($ I1 D; N: v2 c, n. J! I0 `) h- w
'name' => 'Heropress Pro', J* v8 A$ w# a% n7 V
'description' => 'Typecho adaptation of Heropress Pro theme',
0 U& K N" G f5 m6 Y 'version' => '1.0',
, }% v9 _# `6 t) k7 j 'author' =>'Your Name',4 d1 q5 W5 J2 a) z* g* R
);
R5 Y. B- d$ J; x& ]/ k8 x6.配置主题布局文件& `. W3 s# h5 k3 H/ u
3 z1 L1 I7 Q. j- E6 t! O在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
2 _* h& K4 Q0 e5 J- ]9 _
0 o5 Y ?" v. h$ \+ E; r3 Tphp
, [8 q2 e6 k+ M% M; @<?php while ($this->next()): ?>. I9 v( {& ?0 h, f$ k
<div class="post">3 p4 K( N; l: t) a" L% f; R
<h2 class="post-title">
3 a) w1 Q, ?7 C, P5 \! D <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
/ S( a# r0 V1 p </h2>
+ [+ t2 ~( ^, N& {6 F0 i- F <div class="post-meta">. }1 j% c( o" x% I; T; H! T; c0 M4 l
<span><?php $this->date('F j, Y'); ?></span>9 ?& Q. t% |& Q8 f6 p
<?php if($this->tags): ?>
; S0 Y# _* @8 a2 S5 ?& K <span class="post-tags">6 B2 |$ i8 v% r+ W0 q* I1 x& I" W
<?php $this->tags(', ', true, 'none'); ?>' b# @4 t8 P% _$ o: d
</span>% a, H* g8 B5 C# n
<?php endif; ?> u! j4 |% i1 M) j c# {6 s
</div>
2 b7 a) G; h( ] I; ^8 g1 T0 j1 {+ ~: ~ <div class="post-content">! P6 ~/ x$ u9 W" I
<?php $this->content('Read more »'); ?>
$ P+ I1 [" n1 T$ P </div>' }" J- v( J3 F2 N9 |8 M+ k
</div>
1 Y& T& a1 o5 ~<?php endwhile; ?>9 X, g7 @$ p( r, |2 w
7.调用 Typecho 函数
4 e x2 N& m4 N; f
' q! D8 x6 G# d. V. v M在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:; [% u# ?4 j+ q6 j$ m
+ j7 b% A- o% b/ P3 E( z
用 the_title() 替换 get_the_title()。( p# N. Q+ h9 E! {( A# r, B
) P3 D0 F3 ^2 I; R) N5 g3 P, G用 the_permalink() 替换 get_permalink()。1 _0 ^/ r$ L- \* u4 j
( T( l4 i! u% r/ ]1 f8 R
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。0 Y5 S( l# D. }7 w" E
: V; `6 H2 e$ ?6 d3 `3 H f用 $this->content('Read more »'); 替换 the_content('Read more »')。, O- z3 K. c$ Y1 ^
0 a3 G0 c( _1 t4 o6 ]1 }
8.添加 Typecho 标记
( \6 v# H1 m, x# C: B; m) a
9 U, j# @, C4 {+ G; \. B在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
8 G' w3 l. h. i F. ~, j. w3 B: g( j2 ?8 H( ~' E
php& f' ^6 M( E( ]$ s$ y
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>* G9 K7 R+ Q5 H4 o$ r, V
<?php $this->need('header.php'); ?>
% M- h9 U' F$ n- Y<div id="main" class="container">: I- k7 q. P1 }' `1 f% C1 ?
<div id="content" class="row">
0 v; i+ A4 ?* {' Z* U <?php while ($this->next()): ?>3 S3 d5 |. G9 U) k% P* Q
<div class="col-md-8 col-md-offset-2">0 @* p5 o6 O2 s% Z8 T
<div class="post">
( j4 Y. D, y! R <h2 class="post-title">
. y! A# V) P' B+ k; ] A <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
1 H& z' M; ~0 n </h2>1 V# N. t/ {5 J: P0 s! u
<div class="post-meta">" U- N7 g- j2 |
<span><?php $this->date('F j, Y'); ?></span>0 V6 p4 [/ r# Q5 O' u/ A' J( p; z- \
<?php if($this->tags): ?>. H, A& z' \7 i1 B: f& C' B
<span class="post-tags">* ~) M6 S/ h8 |% I6 T P- N9 d
<?php $this->tags(', ', true, 'none'); ?>
2 c6 ^- t! S& ^, l2 }7 h% s </span>
# H1 Q+ d8 X2 V: j <?php endif; ?>6 j) J6 }7 F! t2 ?4 c# b/ `0 \3 ?, b
</div>/ t- G6 o3 @& e9 N! k8 p, f
<div class="post-content">9 z6 p2 |1 s) H/ p4 I
<?php $this->content('Read more »'); ?>
8 }9 g6 i! _% x+ d& r+ S% X2 h </div>, d9 ~" ]( w. G$ e. P# s4 t
</div>
% u0 Z' y6 {! D* Q4 q* _ </div>% _3 R: T, Z& Y/ c" ~1 |
<?php endwhile; ?>
$ T. g3 d# ?5 Y4 L </div>4 K6 H# u- p1 G- I; w7 d
</div>- v/ W7 h. g" S+ o& u, ~* Y. P0 Z
<?php $this->need('footer.php'); ?>$ V* G& s% j1 A# p4 z/ u
9.调整其他可能需要的文件和代码" R! d5 ~2 c# d7 {
; t! t. ^: y# d- }+ v- V* A2 t m根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:
; A, |8 o9 Q. I0 X+ J5 Y' R4 u6 A: j
: M: Q! E% e& @- chtml/ H- }- Z; A, i3 X, Z% P; e: B
<title><?php $this->archiveTitle(array(" ^3 Q$ A2 G; {" l
'category' => _t('%s'),
# W6 i i: e: n1 q( Q7 ` 'search' => _t('Search "%s"'),, }, r, } z4 s
'tag' => _t('Tag "%s"'),1 W X* i& R! C6 \
'author' => _t('Author "%s"'),
" D+ f% F) \5 r# g 'date' => _t('Archive "%s"'),' E$ \4 H2 S/ O; \8 j
'default' => ''9 m: p% \2 w @
), '', ' - '); ?><?php $this->options->title(); ?>. t5 e$ z, Q; [0 e
</title>. K$ w/ T9 O! I- o4 Q0 c) \
10.使用主题
+ W3 v, i9 b7 q5 j' v
/ q/ W2 Z4 E* ?- T: _登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
. M8 u+ J. P3 h. G- U; x% {" S! u9 Y7 ~, x3 `% d3 I: }
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
5 }8 p8 ^6 V+ l& H [
- Z+ n5 O; { l6 d: B# x |
|