|
|
; G# F# V5 Y9 }. i可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:
, S, L* k5 ?8 g2 V1 ]2 H. Q; D# T* s/ a# [; `! t9 B. A
1.下载主题文件
( M( @: l6 j- ]! o/ v/ q3 O- p4 d, t0 f2 V# w. g5 F$ }# P
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
+ T% ? _# y. ~, }, {8 ?* p6 d" a# \% H4 m( K5 _! O- Q5 {7 P- v
2.创建 Typecho 主题目录 r* A! D# N3 ]1 p3 n: }
& a3 \7 ^7 Q1 w( J* w8 |在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
! ~! h; n' v* L; y2 `! }* t" t$ ^; ?
3.解压主题文件/ {+ }. i0 y7 h! e
3 S; I+ A1 K6 w9 F+ r4 N7 H
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:+ Z4 x; B2 f+ B) e$ X* ~
% S5 a6 D* C& C2 X
assets/
2 q6 u$ @( O6 y3 L$ I$ `5 m) E7 hdist/# m( Q! B) R; E, _% @+ w
inc/) W/ _( `: C3 H1 I5 I& A
node_modules/
/ h6 k9 o0 B5 e- H' npartials/7 g" _/ W) f4 ]+ b" w- P
templates/4 G7 t6 H4 p, ]) T7 K
.babelrc
3 C9 z4 j1 }& z.eslintrc.js- U! F& P* ]5 Z2 e- ?! m- L
gulpfile.js! R8 B& o) v, c7 l7 {
package.json
0 ^; c6 n( n9 y6 ?webpack.config.js, \1 Z$ `" G3 c! D( w! U
4.修改主题样式表文件% ^ |- ^. |2 _, n' `- Y1 i
4 t) c( c5 c/ ]5 h8 J
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
, l, |1 ?" c. w1 S- U
' I- T6 J; h8 Vcss
2 z! O! j) {7 ]$ d4 ybackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
! j6 r: r2 S9 y. _修改为:, s) c( K7 b. l7 z
2 ^& F* W* y2 V3 P8 o; Z( A4 V
css
! J* p+ v0 k1 o0 mbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');* L* G, l) w' G
5.创建 Typecho 主题配置文件
% {$ P% [/ L; j _; h+ s$ ?- {" N9 U% H9 ?. l( o/ D, l
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:" ]. r g+ w, @3 ^# B$ T
" k4 O Z6 r( A+ ~6 G% Q* nphp' K+ U: `* @: E( B$ f# K
<?php) F9 i- Z, a4 L6 e' e, u
return array(
* L) ?5 [4 O4 l, P+ _ 'name' => 'Heropress Pro',
! t3 ^" c: e! X0 C 'description' => 'Typecho adaptation of Heropress Pro theme',
r& |( Z# {4 h) ]5 } 'version' => '1.0',
& {+ d- n# X4 w6 d/ x1 v" R: g8 w1 k8 [ 'author' =>'Your Name',+ c1 \, o, Z8 [
);2 D8 x( U; y z2 |; ]4 f/ C, D5 b/ B
6.配置主题布局文件
9 Z9 d! }+ R1 z/ m3 Y0 X" |! n
, Z( y& e9 i1 W% @在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
9 P4 s! c6 d0 r9 \. U: i4 r: _0 @! f
% w5 ^6 `7 g7 t0 j$ n- W- @) Fphp
( j7 [ u' ~; O$ ]! ]) v7 y<?php while ($this->next()): ?>
+ p2 ~, ~' y9 l7 s<div class="post">
1 ]4 Y1 |, Q I, w3 ~ <h2 class="post-title">
, Q l6 _: f- S& w1 q2 w <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
0 E0 }6 B( T2 w7 O2 E& X </h2>
+ Q/ {8 n) m; J/ Q. s# y <div class="post-meta">5 \2 D8 L: p, O1 J# B; [
<span><?php $this->date('F j, Y'); ?></span>. H' l1 C6 \ u: h! A7 \
<?php if($this->tags): ?>
: R0 ^& F9 ` [9 h2 ^: d <span class="post-tags">- y1 p0 D# [1 R4 p/ {
<?php $this->tags(', ', true, 'none'); ?>
+ A4 I; M* q: s9 k' }. _- I! v </span>& R9 L% ~) L' h& b2 q* e
<?php endif; ?>- [9 u5 T% a6 n8 c- r
</div>) C* {, X" Z+ X! S! x" T5 j
<div class="post-content">
5 O% y' i! X" c) j- d: q. G <?php $this->content('Read more »'); ?>
1 x* E7 S+ }- E! J! k: g$ v </div>
5 i+ H! W& Y4 w</div>: {# H/ h7 }2 S: c$ ^% C
<?php endwhile; ?>
! P8 t" p, O( {: g7.调用 Typecho 函数
$ u8 `( C! W! U; N9 E
( P0 Y" L4 x% I: d* n" u- W/ q在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:/ x- j. d) K7 Y
) K. y8 I6 P. E0 \) S! V' W用 the_title() 替换 get_the_title()。
0 M- a4 U0 X% T" e' O5 W( O
1 G& v) t9 n- X. n% e用 the_permalink() 替换 get_permalink()。
! A4 n) |7 O$ x1 B% j; |" B
o; J/ w& n0 x' f; s! M q用 $this->date('F j, Y'); 替换 the_time('F j, Y')。$ O4 g+ Q& H/ W; f% \
0 P) W$ U# S% o7 D c6 ]! z用 $this->content('Read more »'); 替换 the_content('Read more »')。* `; K; T) o8 {& _$ |
# u. I0 X" ]$ q# s2 s3 p+ b
8.添加 Typecho 标记8 ?+ u- F/ m% I5 h! \- M- M+ F2 @' P
. n" ?) ~9 e7 a
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:" }* I1 u1 q, D4 \; Y
( k) p# k! h6 r. u9 `/ Z5 Z" nphp
: t5 {4 G+ [/ E0 }3 W; W- b' ^<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
$ y3 U; O7 z1 l" y+ T<?php $this->need('header.php'); ?> ]; E& j+ X' x' G$ o2 O4 R' K
<div id="main" class="container">
8 |2 X2 X3 E' c9 ~9 j <div id="content" class="row">. y1 W+ b. j' z/ s4 e9 b% h4 l
<?php while ($this->next()): ?>6 t3 H8 i5 V2 W: N+ K: V
<div class="col-md-8 col-md-offset-2">6 `) C S5 O# Q; v( J$ A
<div class="post">
* i: j# X# p8 o; ~% |5 K3 P+ n <h2 class="post-title">& ~* t- m+ _4 o( M
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>9 \& ?7 ^' b8 Q
</h2>
6 Q) q, G+ Q. v <div class="post-meta">
. M- W$ e6 N3 T" i/ K) ~5 _ <span><?php $this->date('F j, Y'); ?></span>- s7 _2 C; @% J: E( f5 f0 c* A l
<?php if($this->tags): ?>0 {5 B4 ~8 H9 \ z, G: ~
<span class="post-tags">
0 h1 H# @8 D2 I& L0 X, @5 t <?php $this->tags(', ', true, 'none'); ?>" W/ u7 }- q1 K( _* b- l, f7 I) t! V
</span>
8 g% C2 o. v* W+ ]% C9 K <?php endif; ?>
x/ C+ ] ~9 n |: v n5 g- @% @ </div>
" J: a9 L0 @( P& l; |) E+ H# S <div class="post-content">1 o* |! I' {% ]
<?php $this->content('Read more »'); ?>/ G0 a3 m! u" E' C7 ]' f
</div>
! j' V" u) g6 _8 m) j b5 { </div>
& u* y4 H; Z& N8 D </div>
6 i( q- U. n0 k9 y' a; M! g% S <?php endwhile; ?>( t, m+ G0 c8 ?6 ^
</div>
. [* l" O) e4 |% A</div>& U9 h2 n1 m/ G- @" f
<?php $this->need('footer.php'); ?> i0 _8 m3 Z: f
9.调整其他可能需要的文件和代码
/ D" K/ d' U' ?+ S" q# \0 H# v+ ?( R$ v( Q5 d
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:- K: r z& w1 I6 ~. e4 v
|. ^5 g+ J7 b6 R( \& Jhtml0 _4 n1 l9 k6 s! S( ]( E
<title><?php $this->archiveTitle(array( X4 I" w: P. Q. P$ P
'category' => _t('%s'),7 F* |6 A3 B$ w5 n8 r, n
'search' => _t('Search "%s"'),
7 a" }" r M3 j! M 'tag' => _t('Tag "%s"'),0 u6 F! S) Z+ c6 u" V8 ]
'author' => _t('Author "%s"'),
8 Y% @* `1 L# H: k1 K5 j 'date' => _t('Archive "%s"'),# D2 N2 E, n7 T5 O
'default' => ''
% m6 U$ v. Z* v( T5 J ), '', ' - '); ?><?php $this->options->title(); ?>
: @! t. K+ X% f. G- ]% Q</title>" w7 Y4 ~7 Y6 _& ^* I9 P6 A4 W4 U
10.使用主题 q0 f6 ?- d( M
( O+ I1 q. ~8 y% Q9 `8 d8 j& W登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。1 Z! y2 t* f$ w( P4 E5 N2 a
6 ?! `. Q, w: `8 [7 Z4 B
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。1 I) X4 R) M( d9 V" }
# `% |4 h( k7 R5 S! R, B3 i |
|