|
|
2 ~) I& \) ?* M! R
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:- h. h# P/ [) ` a5 }
" f5 J2 U1 G$ T! t
1.下载主题文件3 g* c9 N$ Q) r
8 H( a! g9 U' W+ p8 D& m# [' R1 ^在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。. k/ |4 E$ {8 Z" u* c
$ x0 I% U F3 h7 v% v6 B% H, M2.创建 Typecho 主题目录
& E5 y. J: w6 }/ \8 V2 t9 s
- o/ X" E2 E. c* z在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
/ Z3 D2 ^$ q: Y# j0 ~2 w
' A# e! I# w. C3.解压主题文件
! E' B2 P5 f" E8 h) G, q5 ?$ M+ S7 ^5 P4 u) F1 y% W7 M# F
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:
+ F% R! ~$ T. ^/ \5 V" ^' d* V) x/ m6 s1 I* t" `2 U! L
assets/# p( R, G4 Y1 u! R* G$ x/ t; ^% q0 t% I. ~
dist/
' l5 S g; y0 Y! L! Jinc/
7 W8 ]7 i$ v% I# i( k. _' Znode_modules/% P5 b; S" _6 m$ l. I8 W1 L$ }3 w& J
partials/
: |5 [) e# \$ L2 N* O+ Z& \templates/6 P. B( D6 Q& G* S, g6 Z
.babelrc6 u1 h+ `- b1 R# a
.eslintrc.js
- h! a1 ^4 {( l: f2 v+ ~gulpfile.js# l F7 [7 X3 ?$ `% U; ]" R4 h
package.json
, L" T) P( X: F+ k- d, Q; |webpack.config.js- \+ l9 K, D4 L( |
4.修改主题样式表文件! r/ F+ d/ U% U2 b! T% l+ B& R
. Q P7 u" D& g8 e) Q
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:2 z+ h2 g5 N/ x( e- S& u& w9 }
3 v5 @( `# o2 C) Icss9 R; T4 E* u$ k/ c6 Z
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');. f5 Q2 O' T& b+ k+ A
修改为:3 b7 l0 h O r: @" P" _
/ U3 c- w+ u% K" ]% n: ^9 T4 p$ ?- |% k
css
7 }) [' V* ~ B; K7 h* j* C6 O$ vbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');. B) g. `1 {) M1 t4 ^0 k8 n
5.创建 Typecho 主题配置文件
3 q- K* U$ M. {% ]5 |
8 U# W2 u; _% S- D' `4 u% {在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
2 _$ V* K! _6 a ~$ J! [. j9 _! d9 X9 f- ?( R" S ]9 d
php; w; \4 H/ ?6 s* |' ?
<?php( k6 ]0 x1 p* y0 z0 k
return array(
6 _" Q* D( h- x2 C: {* x. J8 G 'name' => 'Heropress Pro',
6 n8 j* S* y# }# f/ F" T 'description' => 'Typecho adaptation of Heropress Pro theme',( p( ^) P& o% R/ W) h. y, H. X
'version' => '1.0',
+ ?6 t1 \! m3 w7 h/ q3 o1 w, @ 'author' =>'Your Name',. Q% _0 Q) {' _1 G; q
);) @) J5 ?' _/ J
6.配置主题布局文件
/ X8 I/ o; h" w
+ a( m9 v4 n0 f0 s1 G8 b1 S9 w在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
% e6 w. B/ ?& c9 P$ Q
# O6 |- |- f; [2 `! Y/ B0 l" w; Kphp
2 j. }2 g Y3 b1 R8 Z<?php while ($this->next()): ?>
/ `" e# \$ Q! @% o* U<div class="post">4 H# Q1 n+ Y% b5 k4 [0 F2 l
<h2 class="post-title">+ ?/ E9 O3 Z- ?8 {% N
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
6 Q* l: p7 O1 l$ `- t* q, D </h2> m7 Z- c7 S$ p+ F0 h! q
<div class="post-meta">0 ~, N* e/ L( X# J \6 m. v% I
<span><?php $this->date('F j, Y'); ?></span>
9 K1 {$ V% G* X7 h <?php if($this->tags): ?>
2 v6 G; P8 P' O <span class="post-tags">( Y/ x+ {- |( r# S7 M
<?php $this->tags(', ', true, 'none'); ?>7 |; [# \% t9 ~4 X3 f; r% s
</span>8 K+ B7 t! X6 Q* k- F, H" R
<?php endif; ?>
, N) x& ^4 b8 T& v+ I5 K4 L </div>
$ H9 w5 h2 S+ W; H+ h& P+ a/ X <div class="post-content">
# p4 K* ?: d* C: w <?php $this->content('Read more »'); ?>9 ~& h7 h: A n- ^- p
</div>( d& t8 h5 d. g& }/ r
</div>7 x9 J, t. P3 P7 e
<?php endwhile; ?>0 d8 w0 y" @! l
7.调用 Typecho 函数
) l0 @3 d) p% A6 b" b+ g( j, ^1 p, E
( |0 C( d2 Q4 h( h在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
. M8 v* o' t/ F$ [) V$ F& _
+ W1 b7 s& i2 Z' y/ G( {用 the_title() 替换 get_the_title()。
5 t8 `$ q2 G9 j# Y; ?6 O% t; O8 W
用 the_permalink() 替换 get_permalink()。
+ q* r. b& D3 y& H+ v/ P
- H$ v6 g0 v3 k: M# {" ^ Z用 $this->date('F j, Y'); 替换 the_time('F j, Y')。3 g. }9 B3 d1 E
8 U5 p5 r7 y. _5 D; W. M' j* |* l
用 $this->content('Read more »'); 替换 the_content('Read more »')。
: a! g! c/ |: w% i0 t q y. ]1 |7 Z$ u L' @' `% d
8.添加 Typecho 标记* z' X6 Z" f$ Y2 D6 R- j: Y
( @3 y4 ]" a& a7 v在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:. k: g. f. m; b
, w$ ` G9 w# V+ N
php
; g" j* \! c) r4 t<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
0 i2 {2 q* y: C8 R, ^' c<?php $this->need('header.php'); ?>
! L% I% z% K' t<div id="main" class="container">& B6 h& U$ U# {6 s! L* N* p7 t* q1 @
<div id="content" class="row">
+ \9 p& N z$ T( ?8 R0 S <?php while ($this->next()): ?>
* }0 l# F+ b1 D9 I3 X: V <div class="col-md-8 col-md-offset-2">) H% _2 Q i2 C9 @
<div class="post">8 L. o9 o. t% ~( |4 _1 `
<h2 class="post-title">0 K0 v5 I$ `5 G6 h) Y& r$ }/ j4 l
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>% T* z, Y9 O' i
</h2>
4 ?. `+ v8 Y0 Q; e <div class="post-meta">
" n7 C$ Q. S* H <span><?php $this->date('F j, Y'); ?></span>
( X$ q5 ]" {$ _8 [ <?php if($this->tags): ?>: _& B _6 d% @7 R
<span class="post-tags"> q6 v' P) i7 Y i( Q% N* F- Q, T
<?php $this->tags(', ', true, 'none'); ?>, u: c* l: u: v& \" t" q' _& C8 T
</span>
8 i: U" C' G1 z/ K& c% G <?php endif; ?>/ z) Z% u; s* v: ^
</div>
9 E! ]8 A- W0 P7 I3 X- A/ V <div class="post-content">
: g3 @; ]1 y# K( ^% \7 r, X, f <?php $this->content('Read more »'); ?>
- k$ \: _2 R* \* t* p! \- x </div>
# f. i) T1 W, ~/ w+ k3 d6 B& d. Q </div>
& f% {8 k6 w( f/ K# ^9 W. O </div># D8 @8 q2 n3 O, b8 x+ }/ M
<?php endwhile; ?>
. V# J+ e. ]; S' _' O& L </div>
) j7 N/ h/ V: w9 ]9 q; [</div>
( @. k: d6 k& T- S, }7 v<?php $this->need('footer.php'); ?>
8 L) M' \- k* L2 C9 I9.调整其他可能需要的文件和代码
* g8 P& {6 N1 S! e1 v/ \# J% C1 d+ f7 Z% j
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:. i3 b6 z% A5 N {" S7 h
6 T# r) L: I% J; U# t; Shtml8 y D8 C) R- F- S
<title><?php $this->archiveTitle(array(
, `: A" }; @) _) w9 S: F8 p 'category' => _t('%s'),
2 X( Y& T- I9 e& r1 G 'search' => _t('Search "%s"'),# y& E U% J7 n r6 Z
'tag' => _t('Tag "%s"'),+ R% @' s0 A9 K
'author' => _t('Author "%s"'),
* {$ y5 N3 o1 b2 r% l2 F/ Y 'date' => _t('Archive "%s"'),
& U+ k5 t5 q2 F* z' G; \; \2 G 'default' => ''7 L" _+ ~' E1 o
), '', ' - '); ?><?php $this->options->title(); ?>( P; V4 X4 Q% o' E8 k1 i
</title>- d; F; p s3 j; x, P
10.使用主题9 c5 A/ ~7 a! H) ?8 z: }
! ^( M4 v6 [* Z; Y, W0 T- G5 X/ F登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
8 d2 z( }( s& P2 w% G1 D% J% d6 X, p/ l' v9 o) y
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。. s# J+ ^ ?4 p2 c; ?. ?# B+ p
3 P) x5 h$ @2 y* S
|
|