|
|
3 E7 O, H' V( I; L2 M' d: M2 f可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:
$ u& g( J6 ~8 }1 J }) o* ^& R ^& G6 `
1.下载主题文件
- z/ X/ f: z6 z; s% q( i- [; B2 \3 `9 V; z( S% n5 F+ o/ w
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。* A @ _& h$ a) u8 {& K
' ^1 z _0 A3 O1 w% T
2.创建 Typecho 主题目录
5 {( `3 Q; F. O, k& n0 h$ ?
^9 i0 f a+ b# p8 A) l5 q. h1 l在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。' i3 n @/ U5 t* w
& W6 p# ]: e6 l n, I: Q8 ]( ]1 m
3.解压主题文件0 p9 A Y$ I, q1 i
+ d% r' U& D* Z: Q% F; }将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:" m! H' ~/ L! q6 i! v. P. X
8 i! U, R; Y; i) C% h- M: f) e
assets/
2 {/ B% N! y5 C; u% Idist/# I3 {6 k' z6 I$ e! b5 b$ I
inc/
) q# V+ y) X# ^6 r l) v& Qnode_modules/) x- |3 Z' P+ @& i
partials/
1 a( y: B. P% B1 ttemplates/6 M! B3 u& v' Y* A( |, J
.babelrc
+ Z5 L, l0 D6 J O.eslintrc.js
2 l: p/ j/ J B* R: V, }gulpfile.js* _9 Q7 r# }# R$ y
package.json
9 O, \$ k4 e$ }( I( h( Uwebpack.config.js
+ m9 W% W! n* A! m ~6 w4.修改主题样式表文件
2 }! z v8 w z$ S+ n8 ] p: x; n: s4 T- ?$ s5 M) ]
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:9 {) ^7 T) d1 p4 X( U
6 o9 P5 r; ^- h+ u' V7 h: {4 a
css
* U8 v$ H" a3 @. d+ mbackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');! Z9 k2 c! X# W; `
修改为:
- j, b# i* l- D- b' [3 T, a) y i* ^/ _, ]
css
! h% i# R. f' s5 {2 t/ \- R8 s: x" Ebackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');' V* C4 ?" X F$ H8 l) D. }
5.创建 Typecho 主题配置文件4 k3 K' @4 E. `6 B4 @
, U( X% C) v) @- _7 V6 u* s
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:' v2 x" i* [: p1 \5 W5 q% J
0 {6 A! @, G3 E4 R! p1 z0 [( zphp
, m) C% S4 z- G8 {$ R<?php) ~; N1 a, y* L% Z
return array(' v* K$ J, u- d% E- o
'name' => 'Heropress Pro'," U: _+ Z6 k [& L: Z
'description' => 'Typecho adaptation of Heropress Pro theme',
5 f, O s8 M* @9 M 'version' => '1.0',
* n- }* o- b1 q1 \$ `! q- Z 'author' =>'Your Name',2 v8 H# Y) f$ }( K
);1 w" v7 d! V) m! P/ T
6.配置主题布局文件
( q, l; d' K6 [
7 M' V8 D% L3 n$ }4 S! R& L) ?* W5 Y在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:) z9 H0 g! b2 Z0 m+ M0 M9 \
# ^% w" p/ t J% e. I+ R- B1 y E
php
3 Y! B# t$ C9 ]9 m7 b. W, Q<?php while ($this->next()): ?>( b) q2 K9 n! r7 \8 N ^' ?
<div class="post">
. X3 h/ b2 h4 } <h2 class="post-title">2 F5 i" `# P* l* f$ u! K6 H* d7 _
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
" E' s, {) U7 m </h2>* [3 c+ E' A2 f7 C, E: Z
<div class="post-meta">! ]$ E* i7 r, n. X
<span><?php $this->date('F j, Y'); ?></span>
6 G7 Z9 p4 p3 q' J s6 m, M) h <?php if($this->tags): ?>, n4 d. |* S0 n3 ^ @: k3 z
<span class="post-tags">7 s; l+ W7 L3 A8 u b; b6 I
<?php $this->tags(', ', true, 'none'); ?>
0 N* C/ {; w/ C6 A* p } </span>
7 Z u d2 R) ]) L$ m2 S0 F <?php endif; ?>3 ^3 ?6 Y# W" o
</div>
/ J8 B% m& `5 F' [% x6 d <div class="post-content">
: x) w8 x" `( y$ C9 S+ \ <?php $this->content('Read more »'); ?>
1 n4 W) r8 W7 l. _ </div>
' \" z& B6 m0 X</div>
n8 l! F9 Z1 C, q<?php endwhile; ?>( O7 X/ A0 D( V$ R" X2 ~. [
7.调用 Typecho 函数& L9 s" x' c0 ]9 o7 B1 Z
# P$ J5 D/ e7 x# _" H Y( h
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:& V2 [! v U. z5 V5 k$ C5 ~
8 ]" o4 L8 H8 b6 v2 K$ f
用 the_title() 替换 get_the_title()。: ?# Z: y5 I1 U# p
" j8 r7 t" }8 D2 A
用 the_permalink() 替换 get_permalink()。
& h0 t- t9 d7 r5 J3 V
; L$ ]& }; [5 z用 $this->date('F j, Y'); 替换 the_time('F j, Y')。/ ?8 m& b+ h, o+ g8 m# a. a
& w8 O, m/ B$ Z' g$ `用 $this->content('Read more »'); 替换 the_content('Read more »')。
6 o2 l; x( E5 i) a* x% h
+ U2 B4 |( {# I B2 \ v8.添加 Typecho 标记5 x$ {) I5 D: R( w! k
0 E- |4 q8 `6 L
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
. T7 L m, j- x" p/ ~0 f$ e( X5 U; b& w
php
8 E( w ?; A% a* t+ U+ q+ L: j<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>, U- b( K: z P
<?php $this->need('header.php'); ?>
, I9 I. m9 ]4 T+ T$ D t! d4 ^<div id="main" class="container">. F C% P. B' E2 P6 l
<div id="content" class="row">
% e2 m, B8 J4 I, G3 n! i2 }. ?5 Q <?php while ($this->next()): ?>4 r9 D* W+ P( i" i% W
<div class="col-md-8 col-md-offset-2">
0 {2 c! B0 Z7 b. M- k% } <div class="post">
# L8 j2 U8 e9 ]; S, t! O8 @& B <h2 class="post-title">7 H4 H4 R& A: Y! T2 W" V" V
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
$ P" u6 ~. x4 ~, N8 W# X" f; j4 N1 C </h2>5 _! m( V% e6 Z; t( ^+ ^
<div class="post-meta">
8 [5 V) K4 O6 N. q. h: w8 y) [1 b <span><?php $this->date('F j, Y'); ?></span>
# ~7 o( u7 A7 o" W9 O <?php if($this->tags): ?>
; _: j$ Y; q, _; v/ L7 o' g" E! _ <span class="post-tags">3 @- `) X5 m6 ]- A3 S5 y' R
<?php $this->tags(', ', true, 'none'); ?>
; i/ K n/ b% W" s4 f% ?3 x6 T </span>
) e. O# ^; m% t <?php endif; ?>2 j. J1 m2 A2 t# I
</div>
. [! [; R. y u: Q4 B/ } <div class="post-content">
/ ^. v' T5 R$ _. C) n& } i6 S3 p <?php $this->content('Read more »'); ?>8 t) {) L" T' C; \! R
</div>6 M/ W# K' R, B4 P* J0 W0 b
</div>
) Z4 W' E3 N7 b7 W( | </div>
# @, T% s0 }% w( R& J <?php endwhile; ?>% i" u4 O: g# ~' j @
</div>
" K/ l$ T9 f; p G$ I</div>7 u% }7 ~+ I' |$ Q5 N) k3 q) M
<?php $this->need('footer.php'); ?>& E: J* i* r' n3 d2 @
9.调整其他可能需要的文件和代码
& }5 H# S: r- B& o9 P$ S& u
4 N0 \1 n& S) o6 s3 I# Y根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:0 p+ n, a0 i, N5 M; m$ g
7 u/ I) l* b3 yhtml
3 h8 D& V% J. B4 i+ V2 {; @% n<title><?php $this->archiveTitle(array(0 P& G% |) \3 z4 M
'category' => _t('%s'),+ R( P" {" f& y6 u8 o0 R4 Y1 }( k- K
'search' => _t('Search "%s"'),
' }' [* K+ j. H1 g 'tag' => _t('Tag "%s"'),
2 L4 g- i4 |5 U3 Y% Z9 h4 W" i( r 'author' => _t('Author "%s"'),
/ J5 E t9 Q9 K5 A 'date' => _t('Archive "%s"'),
9 n4 P7 L' \7 c8 J) B! s$ u 'default' => ''; y8 w, e/ R$ r+ e% g
), '', ' - '); ?><?php $this->options->title(); ?>
% m* ]! I$ q0 V. K2 x9 W</title>! D% Q* b) j' S: i
10.使用主题
& W% b) d5 x( Y
+ c' D( C$ t4 D4 x: L( U, B登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
8 ~8 N$ c, U: r8 q; R2 s: {* S; w
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。 \; s/ I0 ^1 \
' S2 ~3 a9 @9 b2 C( {0 X
|
|