|
|
: i8 c/ }, w0 f- s2 e* F
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:' S1 d6 l7 H2 [5 q5 C7 Z' d
3 A5 y7 X; d% Y# `* w; |1.下载主题文件5 Q3 S- t5 B" O/ p5 }4 F/ v9 E
, I& C7 i6 W/ Z/ e在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。3 o6 {6 u' n: R4 {% n
8 \4 [: M; {# A3 j$ C' L* M2.创建 Typecho 主题目录
! K0 q+ ?/ ]/ u5 y* Y
1 m* O. Q% u5 o7 ^' t在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。 P: q( w& s1 ^: G3 p
, G+ S2 I, [$ W& |
3.解压主题文件( l- G. W) Q9 m2 {9 i" Z9 o2 K
4 u; t) t* F- k2 x! B" V
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:
8 Q$ v5 H' |: v; u9 l: ^$ f( G! y5 N# p# c
assets/* z7 l. S! M+ t# i, c8 w
dist/' X7 k# y+ u, u" s' X) Z9 L, D
inc/
4 v; g( G. Z" B+ E2 R6 Qnode_modules/
" c9 v7 e8 d% O. vpartials// h3 ^6 J4 Z' W. D! F+ }: F4 x" W
templates/* c" ~& P) H) b* P9 s5 P
.babelrc0 Q) i5 K2 o: ?0 ?/ E# s
.eslintrc.js
' v, l: u- P0 Q( G: m% J1 z* Pgulpfile.js% q# e- q* v& m' r) Y5 \
package.json
; b3 Q& s0 h* Ywebpack.config.js
1 B/ p" D* l P0 P8 s4.修改主题样式表文件
F1 F! U9 w/ ]* T8 y v' _
2 b6 v7 z- L8 h修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:+ u, c9 S; o+ Y' V7 [" Q$ D0 s
! c% i, _& ~$ }" V# M! kcss
* E& u, L2 d: P ]( dbackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');( g; E# J5 j8 S4 | f; [( s8 v9 b
修改为:3 V* w& y7 g3 R; D8 v6 S: T y
! \( h3 c, w- _; _css; y0 }7 {. F% k3 r% J4 t
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');5 ^, O8 V; r" u- j6 P& @
5.创建 Typecho 主题配置文件
) V6 Z \# @ [1 J; {* e
8 f& I/ V0 k$ s在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:. u% N# v0 t3 J
) Z3 E% J# b& q4 Nphp1 _% i! B! R, @- J' m- F
<?php
# P1 ^6 r$ l, Areturn array(9 N9 M" q9 J: W9 _# u5 G$ J0 b* u
'name' => 'Heropress Pro',
3 S8 U: @# L! X4 @# I' V 'description' => 'Typecho adaptation of Heropress Pro theme',& Y) W+ g: }: a+ x" b
'version' => '1.0',6 L# T& ?; A% c; o
'author' =>'Your Name',
- `: {9 f8 P4 K1 m' R. g4 g4 q);
* o) W! V" v8 C! p7 @$ ?+ X0 l6.配置主题布局文件
0 {3 [0 `" L" b1 y3 e9 I
' D4 d! o: M& E+ F p* w u在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
' l( |" ] E8 y6 r- _1 X
2 u, V! v: `7 r: Y; ~0 u f _; ?php
6 e R. H6 O) ?+ S7 F8 e<?php while ($this->next()): ?>* `$ s$ H2 B J" e! e( n$ Q) u
<div class="post">3 e j1 ~3 @; A
<h2 class="post-title">2 w8 z9 u- `6 k; P, C0 V
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>9 N! \7 u, `" U- h; O8 i( V
</h2>
1 f( W! w9 }; O. v* @2 r/ h1 s6 E <div class="post-meta">: V2 J- I0 o" R+ X. r# W) q
<span><?php $this->date('F j, Y'); ?></span>) K4 d! k% h/ {) j$ c7 R" |- d
<?php if($this->tags): ?>. S5 Q. ?" V& S9 _" k2 _; P$ M
<span class="post-tags">
, F$ u; {: O* @: i3 ^( A% g <?php $this->tags(', ', true, 'none'); ?>, T6 f* E: Q( A5 F9 G, @ U
</span>
+ t9 F0 ]! P& V& ~: E# ^! X <?php endif; ?>
6 T2 u1 g1 v4 j) }8 }5 N. R </div>9 Z% x5 K$ N3 v6 B
<div class="post-content"># H9 L1 W0 i3 ]. d" c2 z* l4 F7 q
<?php $this->content('Read more »'); ?>4 m* f+ Q: N: j$ x
</div>" k/ t5 _/ }1 Y, l
</div>
6 v5 m% n- Q1 X7 G$ j<?php endwhile; ?>
7 z' A5 P8 U% L+ A m2 l4 c3 v7.调用 Typecho 函数
+ q' b1 N: r2 l9 d. ]! i- H! T$ S7 \' g* d' F
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
# L1 ^' J+ i+ p' J2 j4 v; Y# n! K% J m W4 s+ n
用 the_title() 替换 get_the_title()。/ n/ {1 Z3 k' g+ q& U! t$ K5 l5 K
( C) g" Z1 f7 a* T, d" X+ k
用 the_permalink() 替换 get_permalink()。
' B# x5 n/ |9 H1 J
8 t% r8 ~# W" ^" r用 $this->date('F j, Y'); 替换 the_time('F j, Y')。
2 _' B2 m/ z/ d6 i% L$ j: l' A4 z Q
用 $this->content('Read more »'); 替换 the_content('Read more »')。2 V0 u! a9 L' K' @ `3 E
W E& W( e" G# f0 I7 j8.添加 Typecho 标记
0 L/ w' V5 S4 L2 v% f* L5 E; s
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:5 W) M4 K: [9 w4 ^0 e6 O/ T' Z
J9 D' ?) J" Iphp3 L+ y- C9 p5 O) l7 l. T
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
! B; {5 I1 T. E<?php $this->need('header.php'); ?>& ^, u' R' n" S1 q, i J' ?7 R
<div id="main" class="container">
2 l: W/ ?+ ? y6 `& R; D1 b/ w+ A <div id="content" class="row">; E; t; g# G5 W8 {! O
<?php while ($this->next()): ?>3 E/ \8 u, V) E/ g4 E
<div class="col-md-8 col-md-offset-2">. d# _! p( i8 e* S" {4 G
<div class="post">3 i* m f6 Z( G7 y, t V
<h2 class="post-title">% c2 M& a: c. G2 m" Z, r8 v
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>" K# g( z; w" Y, T+ `: J2 S8 l7 j
</h2>
2 M3 @, p) b( I( o' m) C; ~ <div class="post-meta">3 c. \( V# i8 C- u. k; m
<span><?php $this->date('F j, Y'); ?></span># H. P. d( s( i
<?php if($this->tags): ?>
, e" x( {$ p. N+ c8 g <span class="post-tags">
0 O8 w4 ?) o, j* K* \1 Z <?php $this->tags(', ', true, 'none'); ?>
9 K4 w& v, E# X5 F, j0 A1 q' L </span># m" z' j9 i% [3 g1 ?
<?php endif; ?>7 d8 D9 s5 A9 e* I- S
</div>* p4 n# G8 R# ?# N
<div class="post-content">7 [; y; y! D/ w. u
<?php $this->content('Read more »'); ?>4 p! B+ u9 J+ O7 A/ I+ t1 z
</div>
8 ]- H' ~6 }$ v4 O </div>
; ~# e0 E- U4 R5 s1 Q6 E/ }( g# M </div>
& Q( e* b* p$ t- }1 E <?php endwhile; ?>
; }$ D1 F# I! |, f# A </div>
4 e3 p) ?& Z2 A4 u5 r</div>
+ L$ r0 o$ o( Q( u) }' t<?php $this->need('footer.php'); ?>
B0 h7 z9 e( a7 X8 X$ Y% ]9.调整其他可能需要的文件和代码
* a6 g' T8 b( b1 U/ J1 D8 s0 z3 z% x. F* ^2 L# T
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:& L M* r d Q# }& }# \" u) I
X2 T! T# ]8 {% B. N) Fhtml$ w$ I8 _7 {0 Q0 J& r4 b
<title><?php $this->archiveTitle(array(, J8 l7 S/ C% E# E2 o! i' _0 v9 A
'category' => _t('%s'),3 g. s$ C4 M/ {: R
'search' => _t('Search "%s"'),5 w# y) B1 Q3 }$ M& l1 J8 k
'tag' => _t('Tag "%s"'),( y: a# W4 K, ~0 J- ~
'author' => _t('Author "%s"'),
) F1 r( e, F, q( H$ Z 'date' => _t('Archive "%s"'),. ?% ]7 Z4 S/ D* Q
'default' => ''2 ]$ H8 z: j- [8 m& m
), '', ' - '); ?><?php $this->options->title(); ?>" F, i, R ^/ Z# Q& _/ u9 z
</title>! S: G2 y/ e* S
10.使用主题
( H' Y, D: [- S; \* q/ B E
# r0 U" K" O" A8 E登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
- k7 }: I% t% a S3 K" M( }( o
m" Z$ Z; B7 O1 T以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
, w$ ?) @' S+ y% Q$ `% p6 z4 l7 c. x4 Q9 K/ w# w
|
|