|
|
& v! [# q) i5 M5 V4 I; ^
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:. |3 m" k* K' s3 L( `9 M
z0 J0 x1 t$ `( `1.下载主题文件
C# i5 j0 n6 l9 \; E4 [/ { L# S* [, O/ N8 x" } J d+ t# a) V. R
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
" P+ p: r% t9 f1 K' w ]# G8 P& w
5 ?' F. u$ W( r# f# a2.创建 Typecho 主题目录+ d9 E! ?" F2 R" W
1 D. z6 k( L7 {# @
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
) `% O! X/ e6 S% n- p6 A$ L+ ?# z* Y( J+ E( e7 [
3.解压主题文件
. u* M) I- S$ b& u" i' q* T$ a! L" w0 K& K5 ]
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:
" K6 d" T6 V3 s+ o, d: V6 x& {2 s/ K; R. I4 z5 w$ z
assets/
& H: M0 J1 V/ O$ m: Ndist/
( D& ?2 [+ z9 r0 U, hinc/
7 c, ]. V7 S A# A5 D# ~7 Cnode_modules/
2 m/ U+ Y. S/ H/ ]8 A/ `partials/, I1 N( l/ ^! u1 G7 h5 B& d
templates/
% M) p4 Z* O U+ s e. m.babelrc
% L: k: o6 b; }4 [# @, E- }2 q.eslintrc.js
' r2 z" h, o- \1 ?gulpfile.js& d, \; K& f; J3 i: L$ K _$ _$ J, q: B
package.json8 t4 B( S3 M5 m( E7 K( R
webpack.config.js
6 y* G' X- u X5 b0 b3 k4.修改主题样式表文件/ Q# R8 m0 ?+ j$ Z/ j# o; h8 ?
6 A2 N1 N. S$ N) V m N6 A8 D
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:2 S( G: @* p. E
8 n; O8 F4 Z0 g7 h$ ~0 F( A# ?css
7 Z# x" Z* j4 Z6 A5 W$ b0 Tbackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
|& a: Y' ^! k1 M( w* B% n修改为:
' |0 I8 o) w; Q/ k7 A! i6 Q9 }( K/ o6 @
css
9 z1 k, _, r) M8 g& U+ `( Vbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');* l ~: D' o% B0 K
5.创建 Typecho 主题配置文件
. S$ V' F/ |$ V. b$ Y( X2 C8 L2 s9 ^8 w/ T! E7 Q$ n- L$ n0 P
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:- L0 a) P( i6 h/ m l0 q
) P4 m2 n( ^) L% j
php# b. \! H1 R9 R$ a5 N1 t8 D
<?php' O6 @9 ` d H7 U& ~: [7 O6 @5 a6 Y
return array(9 T" O/ a6 i! G; k4 j* D7 }; p/ J+ I
'name' => 'Heropress Pro'," M1 Q. _, Z d2 J( l
'description' => 'Typecho adaptation of Heropress Pro theme',
: c/ c, r( O% l" v. ?& E3 d 'version' => '1.0',3 ]( Y/ F3 {; @
'author' =>'Your Name',
- |0 n A7 f6 t% l7 ~);
/ G I& s7 U; D6 l' q6.配置主题布局文件6 d+ U# d, h, ~2 J
. m! |7 j3 [' W+ Q3 v2 I6 V
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
4 J- @/ c k6 @' e8 e+ e( ]( [9 C9 Q4 U0 T
php1 k& s( G2 h; `1 h$ O W
<?php while ($this->next()): ?>9 j9 H( W! o5 K( j8 ]5 T* d0 C
<div class="post"># v0 Y0 |2 } p) A8 o
<h2 class="post-title">3 w" x+ ]$ X8 [
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a> }# |" |$ v& M) W' M4 `
</h2>) ]- w- S9 v. l3 T6 Z P
<div class="post-meta">1 L2 _6 R1 D2 h( U6 F
<span><?php $this->date('F j, Y'); ?></span>
; W4 I8 X4 ]& H <?php if($this->tags): ?>
7 X8 T0 V# l+ r3 o9 @# D9 L <span class="post-tags">, S2 F$ m. j" X% {
<?php $this->tags(', ', true, 'none'); ?>
8 }* z1 [2 z* R </span>
" }2 n& d9 Y. L* b! _ <?php endif; ?>
. I; q! W' o+ }3 W </div>/ B: a: ~' w9 n5 L7 E5 P9 {8 D
<div class="post-content">+ w5 y0 d: n5 ~ E6 e7 G
<?php $this->content('Read more »'); ?>& q9 ]0 U; _- H5 E7 f" v1 S
</div>
4 P& W! q2 N( L4 K& p; a. q& n</div>& j3 L* S ?3 v9 j! D
<?php endwhile; ?>+ t( S+ d+ c1 K* y& l$ `7 S
7.调用 Typecho 函数) }7 N. b, j3 f2 M! y
, y# Y2 U2 Y$ g: x# T& J在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:/ C* U* n) b) i# p& @/ f4 _ L
* p' r j" o% J1 s9 [
用 the_title() 替换 get_the_title()。* i7 w( |, K9 {, A3 b4 _" ?: Q& i5 G
' b3 ]1 A- w9 H% g用 the_permalink() 替换 get_permalink()。
3 b! k) n9 P7 G( u4 K( K
: E9 N2 Q% z, D2 C8 f( n用 $this->date('F j, Y'); 替换 the_time('F j, Y')。& K8 V' A7 Z; O
; r# h8 p6 X+ s: M- i用 $this->content('Read more »'); 替换 the_content('Read more »')。2 G: z# V/ I2 g9 j+ ^
- N ]( O+ L1 S6 K) H' J
8.添加 Typecho 标记
1 z- H5 Y; p+ a; d* B; G' H* j% r$ N1 w9 F
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
6 F5 Q- [4 t0 Y. }5 m
! B2 `2 u! G* {* j. U8 g, pphp
0 K8 T: M) x7 ~+ C& M7 u. `<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>8 u2 M E+ `+ H, `2 b" z6 c
<?php $this->need('header.php'); ?>
+ ?5 f3 g* y9 }& p<div id="main" class="container">; L7 D( ]4 K- s* q# o, X
<div id="content" class="row">; a9 R1 k' F( ` m) B1 p
<?php while ($this->next()): ?>
" n9 W+ w6 Y* d! R4 k6 O$ q S <div class="col-md-8 col-md-offset-2">
. i4 Q7 p) x. @+ O& r3 k/ w <div class="post">
/ `: |, t1 w' R7 \* i+ `6 U( z+ j <h2 class="post-title">& t: P, _$ r" c5 ~6 G
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a># z8 v) C {( ^2 ]' f+ \+ L9 B
</h2>5 T* r: G, H! [: c/ G u5 h
<div class="post-meta">
5 u8 }# i- |, p ~ <span><?php $this->date('F j, Y'); ?></span>
% g% H) w6 X0 A( _6 z* J4 m <?php if($this->tags): ?>
' k, G, F+ U# h! C- ?3 x <span class="post-tags">
5 z8 ]! O+ ?5 `% ^ <?php $this->tags(', ', true, 'none'); ?>
% ~7 v, R" u/ l! n$ r; g </span>
- O) |7 V; W3 E+ X8 t <?php endif; ?>
/ \/ y7 b1 S z: K/ X/ b9 f$ b </div>
3 l5 @# T; Q# B" v- r' f <div class="post-content">
' |% K$ ]) h5 {% D7 [: T <?php $this->content('Read more »'); ?>9 V0 a! _( l! _ _
</div>" d$ N2 K8 Z! ^
</div>
5 ?2 K8 `, Y+ ?0 z% K3 V </div>
; Z# h5 J; f1 g9 E, E6 W <?php endwhile; ?>
: I, c4 w- L; y) h- r' x1 D </div>+ D3 a$ P* y* ^9 L+ a, T: ^1 T9 K }
</div>
% }# n9 x( ?5 R8 s! p& ?<?php $this->need('footer.php'); ?>
7 r# O# d6 D; k+ N" D; j8 @/ k! |* F9.调整其他可能需要的文件和代码
- K2 u# F+ y7 i+ g* ~; D/ r2 |# s; C4 i
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:* G' T% ?% O$ Q9 {/ T
% q: U5 t, B# }4 K
html3 p5 T: }2 r+ D
<title><?php $this->archiveTitle(array(
* R7 x2 V Z2 u( G! S 'category' => _t('%s'),
, C# R0 F8 t. a1 S& I3 l! c5 D 'search' => _t('Search "%s"'),
, y! y; ?& i" J. m; J7 L 'tag' => _t('Tag "%s"'),, k4 p% ^0 {# s5 X/ Y# V8 N
'author' => _t('Author "%s"'),
) _4 J: W9 C! o: n2 e! r 'date' => _t('Archive "%s"'),- l {" f) X$ x* F2 A& U) M" n
'default' => ''
% t7 @# }) c- w5 J2 V ), '', ' - '); ?><?php $this->options->title(); ?># A% I) v0 O9 k% R6 g* G8 c# v
</title>0 Q4 f9 ^& \6 X" ~4 v' D9 _
10.使用主题8 _: c, W9 D% j( }9 e
A+ w4 P9 r1 W+ }3 c5 _6 `登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。5 D; s! P6 ~4 x( S4 G0 T
" i# G) w B# Y& W8 z以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
; I! ~) F, Y, Q- F1 o8 e* `8 t9 {2 b+ g8 k
|
|