|
|
" |$ w1 M, `% i- P: X
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:/ u% W$ R# _% {' o3 Z& t0 f( D8 ^
/ r" l! `, P8 P h5 ~4 U# A1.下载主题文件
6 t+ j9 q" j, `2 l! {6 j4 V* r
$ Z; R" C" ?- U( i z h+ d4 M' N$ g在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
# Q+ t' q3 L3 x* A( C; {8 X# o: K) j3 o! ]$ V5 ?
2.创建 Typecho 主题目录2 C) g0 L( W: [4 Q7 P' J, K- F
$ v0 Z, i$ E/ ^! L2 g: X, t1 ^在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。# w( o) Z1 C9 A- }- }& W" s$ o
l- X( u4 m7 ` k) ~# J8 f2 H3.解压主题文件7 Y: `7 P) t9 t8 U8 s0 {
; j& l. X9 ?: ]
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:
6 H' P# A% Q: V2 ?6 ]+ o4 Y3 Q3 }: M- L- e1 y
assets/( Z+ b6 N* i- d3 C+ d8 Z
dist/
6 x W0 y3 j0 s3 zinc/) W. V( G; D* w- F% {* Y3 M6 D
node_modules/7 M# }6 }8 u4 E
partials/2 C9 p0 a, y/ e4 {" V! e/ h
templates/- }: p' r& B9 x d
.babelrc
) o1 ]2 J, T7 e; j1 k8 ~+ J, ^.eslintrc.js- X2 u4 r, O7 I4 h: d9 M
gulpfile.js, r8 o1 R" z: Q+ D: H4 J
package.json
* K$ d- t; y0 fwebpack.config.js
' r* E' a! y* g) C0 c4 `$ d4.修改主题样式表文件
% t& l& n( P. T3 x, F
. M- U$ F5 v+ l3 @# ?: A4 h修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:$ ], a, r" n! d7 v. y
" Q3 Q2 {* E5 [css# o8 H$ d8 n" t4 h7 g! }
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
( ]# m! g, x+ k0 G5 m修改为:2 ?- o1 c5 o' A8 @0 r
3 b* d2 B# p% A" O3 z$ Zcss
& M. d, D3 l/ i$ S- V. N) B, cbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');0 E; d& f: d% o% d& l
5.创建 Typecho 主题配置文件
8 ~1 Y9 k z8 C6 W5 i% \ k- W3 l3 z& h- U U
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
1 \/ `+ P% j- e( x" G+ W8 @6 W
( G" i6 \1 Z4 lphp
# o1 }9 n" y" Y- W% z/ B<?php e! {2 w9 B, T5 B: g) ]2 K, t
return array(: p7 H7 }: C$ X: f
'name' => 'Heropress Pro',: W3 H; R i1 l2 p: I. ?. E( c5 O
'description' => 'Typecho adaptation of Heropress Pro theme',# P/ ^# J$ V' E* q3 d9 }
'version' => '1.0',
) _1 \& S( ^! S. w) D4 [! m/ B. V* C 'author' =>'Your Name',& U0 K, F; o" z" ]
);8 u9 P/ j2 f- X9 ]! r
6.配置主题布局文件* z- x* `; |! ^. R: h5 o# D6 \5 W! |
1 d4 i* O- ~; g在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
3 T7 P/ c: {& E) W6 t/ @5 e- L
+ c& B1 [3 }/ x$ Q9 m( `" t+ f" Vphp
" X0 B4 k# q8 u1 v<?php while ($this->next()): ?>1 h) `% h5 ]0 X$ |
<div class="post">5 E3 `0 M) |: N
<h2 class="post-title">
% {2 {5 p1 `* _# c5 J% j <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>" G6 t' |% E; G9 c! l- c9 A w# R
</h2>
5 C) z4 X2 E4 ?; y$ Z% l <div class="post-meta">
4 d" s+ [, x/ Q/ q, y <span><?php $this->date('F j, Y'); ?></span># z" k) p, r$ g' y- y+ R" a- C
<?php if($this->tags): ?>! f* r7 J7 B; E( q/ J) |) I8 W4 }
<span class="post-tags">, H" h6 E. A2 m% l8 @
<?php $this->tags(', ', true, 'none'); ?>) U! N4 M& [2 P! I T- E5 B
</span>
' b8 {! ]5 O2 L' \. d1 {8 e8 a <?php endif; ?>
7 I: R" @5 `/ G( {8 F* v' F( X </div> N+ U: \# S; }6 K9 U/ U# f
<div class="post-content">
' m$ `1 ~5 [( Q <?php $this->content('Read more »'); ?>
5 T3 U+ n6 l" L2 d7 R" _ </div>
1 T0 [- h. f: W+ |4 B9 ~</div>% Y& L6 S# ]+ P8 S, Z
<?php endwhile; ?>
* n3 n& i2 q5 @( F% J% b7.调用 Typecho 函数- w% L3 {& i, U8 b1 o! {
* ? R0 v% B+ W1 i! b在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:: l' T2 Y: D! o) ~1 i: g- C* D) `
; N2 [" _: u/ g4 |5 v
用 the_title() 替换 get_the_title()。0 f5 N! v! g( q: s
- d a% k4 R# j6 j" S$ f4 c用 the_permalink() 替换 get_permalink()。
/ k3 Z) O) R! r( B! d) @' r: y' {: g
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。
0 P8 n% s. ]$ ?* _6 ?, C8 |$ }/ s5 E; r
用 $this->content('Read more »'); 替换 the_content('Read more »')。
' y+ `2 K" [% T# Y5 O% a
4 S: b0 O5 k: \- [( i8.添加 Typecho 标记
- o$ w8 q5 R& n0 Q# S- ^9 T* f4 _1 T. a/ b) V
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:. h: Z0 G; s' W# O1 b
* a& q1 L( A6 N% U" Vphp
; J3 h: ]. }" e<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
/ w) o4 ~! t0 e6 E+ d, A& U<?php $this->need('header.php'); ?>* H9 M2 M5 l2 Q/ M
<div id="main" class="container">
! e7 l6 X4 B; T% Y4 E <div id="content" class="row">$ E1 n( _6 E& x5 O* S% `5 D# J
<?php while ($this->next()): ?>
! U. [5 j, ~: M. p. P <div class="col-md-8 col-md-offset-2">
# S$ f, p3 r- \: |( \6 {1 h <div class="post"> ~+ s/ o4 W/ m0 D5 }+ H: M9 C
<h2 class="post-title">0 `2 ?8 x4 W- v+ M/ ?* x
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>6 c) p, ?9 ^( i& E: U7 f
</h2>
3 K& e7 z) n, L" N8 h" V <div class="post-meta">. l2 U& n1 x$ h- n
<span><?php $this->date('F j, Y'); ?></span>
& Y9 m( p4 `+ L" f c' [( S <?php if($this->tags): ?>4 j5 j; S( |9 C3 @+ u
<span class="post-tags">6 N' d3 p8 E3 k; r
<?php $this->tags(', ', true, 'none'); ?>
/ x3 |* c9 ?) L+ V% d9 V1 H* @* V </span>) z# _+ r$ r: I" C0 u
<?php endif; ?>
' \0 n& N/ a# ~4 D2 u) ~ </div>/ M. a# i$ @) [# J2 v, Q
<div class="post-content">
/ ]/ T' r; i6 | <?php $this->content('Read more »'); ?>
1 ^, Z! I' \( V# J0 t </div>
4 o' i7 [! l4 y( R8 E! S @ </div>7 J1 x5 B2 O6 h5 J
</div>
. U7 N+ v; Q% q0 {9 V <?php endwhile; ?>) F& X6 B G( v$ { {0 f2 _$ R: ?
</div>2 n0 r' X" r% g) |( n9 i6 j& z
</div>2 i7 H. q& f, r6 i1 @$ |& V1 ~! n
<?php $this->need('footer.php'); ?>
& a2 B; `, {. U. `# p) f9.调整其他可能需要的文件和代码
9 w, y7 @' ?+ X& u2 X
9 a3 Z/ b: Y& [# U8 i2 L根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:
0 f. F; M+ H; C4 J9 q8 I. N; x+ L, [( X0 |% S4 m: V. U. w
html
% d1 q4 v1 |, G [9 N w<title><?php $this->archiveTitle(array(! c. ^$ [% b J$ t" ^9 `
'category' => _t('%s'),
; [7 ^- f3 Q$ V$ U+ _8 U. m j 'search' => _t('Search "%s"'),( M. V: f7 x' O- ?
'tag' => _t('Tag "%s"'),
0 }# _4 W4 y, b E! u0 E 'author' => _t('Author "%s"'),
+ u# u% ?6 K3 j+ C9 [ 'date' => _t('Archive "%s"'),1 \9 e: g6 c4 ]# ~3 n
'default' => ''3 u5 h8 N% s+ `; u, |
), '', ' - '); ?><?php $this->options->title(); ?>/ c( ~7 \& m) C3 o% j9 P
</title>3 r+ q- \' C$ f! a- x
10.使用主题4 G4 r+ @% y) b' I. o6 L7 f+ G
5 k1 h& q8 U4 h8 s. e ]
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
* h2 e0 w0 `' z9 F1 R: P. B8 \3 R8 R% v& _4 S8 ~4 z g
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。6 f4 H/ `; Z* ~. r& E* f
: T" `; f. Q3 b2 z$ a F
|
|