|
|
* s& K1 U H' j5 u' C可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:8 w' M& b' B% e" x/ y
% V" f) g$ n* m. ^) k$ d) @
1.下载主题文件
$ s8 K) g* |; }7 W
2 I Q( X9 F4 L; J$ U/ x在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。; F& T7 |% x; _& g' u6 X& u
. x( r8 z9 O }, _0 Z% r; d0 A
2.创建 Typecho 主题目录% `" w; ]8 Q) d+ ^0 C
# x1 s6 D5 h5 T6 c/ I3 d: Y
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
+ W& k- e! V# q/ C
* g I- \6 I6 J( f( F; H3.解压主题文件
; e4 g0 S a; i+ g0 O2 Y3 L) f0 G+ m W6 U d% Q, r1 j
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:) X3 B$ U- S; }# V) w
8 ]. {3 z" `/ ]' E' r) @9 ?0 sassets/. o) U/ r" ~/ J+ d: ~
dist/
9 a* [8 T9 m z- c, n, d9 Jinc/1 Z9 T) u* c- @
node_modules/* b) S$ z) C# J4 O1 M2 B
partials/* p1 z ~( L) O7 d4 q
templates/. w. F2 }# ]. `5 ]) J
.babelrc7 R. N2 k" N( Z7 _, n
.eslintrc.js
0 d0 u% F3 G8 A1 rgulpfile.js
6 _; G6 z# W& e) @package.json/ q6 E% Y, O- H( i; t; [
webpack.config.js2 }# P% a, _7 ^4 u7 T K1 h
4.修改主题样式表文件
4 `; X, F! N2 b9 q/ [2 f+ e N6 M! M' c' N1 j' \9 w6 u
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
+ P& h; ~ z4 m5 E
7 i- ]3 s9 y4 b* Vcss
- r, k. D0 M/ X4 ^8 y( y# j* \background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
/ N# w6 [, p7 x6 D2 c修改为:
! T- c* d& _8 j2 q7 i* W5 j" g& r) ^* d/ W9 }) N
css, v) H4 S0 @3 h# \, m
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');- ?6 }: ~4 y/ T2 J7 p- u, D
5.创建 Typecho 主题配置文件
+ J; T6 O, @$ Q& f' w! _% K% q) F2 w- G R: T! S* R
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:1 q& G8 J4 {4 {" `& r% G
6 `$ o: |& q8 f
php
A8 J: S: ]. ~<?php$ V) k1 [. e, \$ G
return array(! M) O2 ]1 a# a8 b! M+ _% O
'name' => 'Heropress Pro',
# w. Y- d; o2 K5 p 'description' => 'Typecho adaptation of Heropress Pro theme',
+ ]$ a% \. g; \, T: O Q1 g 'version' => '1.0',
3 p- U6 n [: z. B2 L6 i- a 'author' =>'Your Name',
& g2 p$ z' r6 U$ E$ b);
$ p' @% p$ g* M0 U6 U1 g0 t: J( u6.配置主题布局文件
3 A" f3 l7 [3 G+ _
" z" e/ Z2 _ v( G0 h; y在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:" k* ~2 {) K |+ @
5 n J! }% g3 V/ j1 d k2 b; a
php2 J5 s! B: r: A1 G
<?php while ($this->next()): ?>
4 g: d. |3 |* F" I<div class="post">
1 H( L9 q/ }4 q- F @- Y# a' F <h2 class="post-title">2 H3 Q& ^& W. t# x( E
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>4 q1 k8 Z `: t
</h2>
6 G- [' ^8 q. N2 }/ ]- m+ C2 W/ t& h <div class="post-meta">6 s J9 d6 Z( C
<span><?php $this->date('F j, Y'); ?></span>
6 h7 t: L4 m. j7 Z# d% o <?php if($this->tags): ?>! p9 p+ w5 j, x6 b
<span class="post-tags">2 u8 {" i: H. F4 F$ F3 \, b
<?php $this->tags(', ', true, 'none'); ?>
0 p6 [& H: }# I( y7 h7 s9 f* n/ a </span># ?' q2 Y' q" U
<?php endif; ?>6 l8 }; [0 g0 V/ B
</div>6 t: j E' n; `& w- Y
<div class="post-content">9 Y5 J" z* M, E6 ~ v' g
<?php $this->content('Read more »'); ?>0 X- Z: \7 ]- i& M1 J; P
</div>
% @ Y% H" R: y3 B( x4 F6 w</div>
/ k3 t4 j. M! x) H<?php endwhile; ?>! z( N# P) ^5 w- @& r' L' G
7.调用 Typecho 函数7 p2 J8 D" a& J* o0 X- P" ]" t
7 k. {! d( J; m0 d$ W5 i6 ^
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
- v; _+ ^4 j" h5 q* \, O$ x* @8 W) `8 n( w
用 the_title() 替换 get_the_title()。
\( M3 _0 w8 i: x! N f
1 H5 s7 o" Q1 Q2 X用 the_permalink() 替换 get_permalink()。
1 J# h/ E* p) q! X: ~7 n. l
; |9 a) ^, ]; s! a! p用 $this->date('F j, Y'); 替换 the_time('F j, Y')。
, T! ^5 n5 Z) |+ b# U- [: S+ M3 C: V4 ~2 y5 J0 ? N& H" y
用 $this->content('Read more »'); 替换 the_content('Read more »')。
8 K; Z7 [1 ?2 ~, S
3 K' K; k% [) o8.添加 Typecho 标记. U2 J2 }: f' Q. P4 P3 g
( y' Q9 H* d; o2 Y" A% [在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:# }8 w) u; F; h7 ^1 H0 L7 B A
) p( C1 [) n& z: Z+ k6 e; W! l
php$ b# U! D- r3 h& g% I) F2 Y
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>, B) S, x0 w/ m$ i3 W# t, F
<?php $this->need('header.php'); ?>5 W( O4 m5 K S0 m$ W9 y
<div id="main" class="container">
) X" A! f, v/ ?4 |9 K! ]- M) [ <div id="content" class="row">
9 _! ]( n) f, E2 s% i2 x- c <?php while ($this->next()): ?>
. Y2 `& w, P8 x9 X, T <div class="col-md-8 col-md-offset-2">
/ u) A3 u ]+ b: B% h5 _; K <div class="post">
4 }8 |8 {) r. c <h2 class="post-title">7 o6 _9 f% g! U8 s8 h
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
0 N7 g. r7 G: L3 k4 C( B0 f, B </h2>/ {- i2 T" S) D. q5 S
<div class="post-meta">
. v6 G& s2 O% B8 @4 H <span><?php $this->date('F j, Y'); ?></span>
" m( W* [" {: ~" ~; ^" z <?php if($this->tags): ?>
! P8 C+ _& ]1 K. }5 H% g <span class="post-tags">
6 H- P& x4 J' h6 J <?php $this->tags(', ', true, 'none'); ?>
; ]$ c6 j% d2 b) @3 b! o7 h# O7 ]9 B- n2 r </span>! L$ |& W2 T1 O6 I
<?php endif; ?>
( x, ?7 F# K, `) ~# P </div>
4 x5 `7 W4 P: p2 P2 }% s <div class="post-content"># E! g+ {3 u! ]6 e( H z
<?php $this->content('Read more »'); ?>
) @! _! A% W4 d6 t% a0 E </div>
+ h+ }" [/ w$ Z, z* c </div>
; W. I2 q1 G' }/ Z' c </div>( l$ ?! c' N Q Z
<?php endwhile; ?>9 J9 d' V, U. f( _
</div>
" ]6 ^1 v, @2 @- S% c</div>
& R4 ]) Z7 V' [1 K# L5 j% |<?php $this->need('footer.php'); ?>( R& U4 {6 v @' e& ] x. R; g
9.调整其他可能需要的文件和代码
4 _9 v+ h$ V6 ^. o: b* @# e* G4 E3 M* ^9 Q! K1 C. F
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:
' A8 `* {) s- q0 H) u7 B# ?
4 \% J* _! P$ G- ^) Khtml1 e: J R. k9 K; J7 ?( y
<title><?php $this->archiveTitle(array(
# @( y! I2 U+ [1 R9 [+ g K3 j q; ^) j: I 'category' => _t('%s'),
' L3 j) A; f }! A& L; Y 'search' => _t('Search "%s"'),
) g- V: ?! x/ \) U) o 'tag' => _t('Tag "%s"'),
" S! e( U6 w. F1 ` j# P 'author' => _t('Author "%s"'),; I% e4 p9 I1 [
'date' => _t('Archive "%s"'),
' `: n: A3 Q' q- U; q' x5 R 'default' => ''
% o8 Z' e2 W+ X: b/ j& j, J ), '', ' - '); ?><?php $this->options->title(); ?>. y0 W5 y! V; i
</title>
9 \$ a4 q4 Y: j) f10.使用主题+ y2 R- w$ J; r( j. b+ c, `
3 T: v( x6 c# s
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
& {" J2 x' Z/ ]) F3 K) c$ c; h: M/ u
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
8 b, ~/ ?: m3 k3 S; w
4 Q9 @+ b! n r' t |
|