|
|
. X3 _: u: C$ w/ U6 M
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:
. F; j+ w% K8 @, x S( g8 j5 r) R7 ?& n
1.下载主题文件' Q( e& `3 u, I' W1 [
* [- }! i7 P, A6 H- x
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
7 K A. h: P3 u! B) c" T4 p# G) L
0 V3 C* F3 l- `/ b2 _, |8 _2.创建 Typecho 主题目录
, F6 b, b0 C& K. y" T: X+ D b7 F4 g/ M, {1 I# x$ o! N# X# U
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。- V: T& e! J- f' R- J
9 |; q1 I0 u, a7 p7 G# T
3.解压主题文件
- _$ V) Z9 u7 z$ P1 ?7 G* D9 ~2 x8 p0 A; b: J& L4 U- B+ L j) R9 c
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:: {8 D" i0 S( g, M
- ~9 h; O& a0 sassets/
# O! I4 O( \# cdist/
1 x J# n* w( yinc/
/ Z; u4 a2 P( w& P* Z( Unode_modules/" _0 t; }% r" _ A4 f, E
partials/
; B, q/ |% x! K/ }8 j2 @templates/
- G' m$ S7 I7 m.babelrc0 A0 D+ I/ k4 `
.eslintrc.js
! n. L2 s4 ?; @- Sgulpfile.js$ Z, M: @: I4 ~+ ?8 U! O/ l
package.json
3 W4 H& ^! s$ G( rwebpack.config.js, h; R; E8 A% K) l9 Q% t
4.修改主题样式表文件
1 X; H# R( T% `; _9 ~! q* h0 b" u$ D& l2 \: I! q6 C
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:9 W5 m- b+ Y# u7 d
- a7 `0 J. j2 I& Rcss) ^5 h9 c1 k. W5 M3 p; f
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');2 ~- Z+ l3 m/ w1 w) m# K' e- C
修改为:
! }8 v ]" e2 w9 E2 h2 d9 \5 R4 X+ O) u0 t c" Y# `
css) i0 ~/ K+ [( s" I- E2 @5 O
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');% L0 z, b) L: v9 r$ @
5.创建 Typecho 主题配置文件
" H! _; h; A, G: r {
# e l- I- y6 D2 Q4 i, d在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
) A8 [4 y, i1 p: F$ }, b: i# q( V" f( k1 m6 c/ A- P: k
php
8 @! t5 }7 C7 x: S* p; `<?php
- w: n# ~( N# k$ d9 R, ?return array(
0 T+ f: o3 b6 R 'name' => 'Heropress Pro',
& l/ K M% |; T6 ` 'description' => 'Typecho adaptation of Heropress Pro theme',3 C: a7 I' e$ ~, Q
'version' => '1.0',7 l8 r* A) g/ M( o' S- }! @; }
'author' =>'Your Name',
" m. `+ u9 a3 I5 j" [);; z/ h9 r. B& y* n
6.配置主题布局文件" s# m1 V! h+ u3 c4 W+ h
7 _& V: H" l2 f( q q" O在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:! W5 T0 f8 G! Z6 e
2 x& |; k( L/ |' J) wphp
) Z' O" [4 }/ |0 J. o3 q- @! A<?php while ($this->next()): ?>
' J6 q7 u. E$ C1 {! s- U<div class="post">) y- g$ u3 x& `+ m
<h2 class="post-title">: ^/ b0 {# D4 C {2 p* m. u `
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
# M6 v7 o& _) ~* N0 n; c) `1 ? </h2>
# W' ~& ?# K/ g9 O- a <div class="post-meta">
2 P9 d' K- s5 A) s- ]8 w <span><?php $this->date('F j, Y'); ?></span>
6 B: F3 Y! A! D8 n( d+ q( j5 o <?php if($this->tags): ?>
& K6 h+ Q$ U! c' { <span class="post-tags">
; J' j3 H7 A, c8 e: R <?php $this->tags(', ', true, 'none'); ?>( q4 C1 I. H( N4 k' I: K
</span>( i- @' |' g8 g' c n
<?php endif; ?>
) [) l# j! _+ l$ q/ O Y! I# `1 k </div> c6 `) ]% m( d$ W* e4 k
<div class="post-content">4 P, H# a4 {$ F1 E6 i* ^
<?php $this->content('Read more »'); ?>! N; e+ e- L. S
</div>/ l8 E% C- u3 d! b: Z% V
</div>! x' q0 }( ^1 E1 N* R( G
<?php endwhile; ?>
/ o2 S, U# h$ N( c7.调用 Typecho 函数
$ v8 z! U6 t! G" t3 g: n2 [/ C; d, m* }+ Z7 g- a
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:' g& I x1 g$ h6 G9 b
" Q1 [" A8 }3 A1 f# G用 the_title() 替换 get_the_title()。
* x3 Y$ x z2 u* j
$ @, r$ Z, [) O用 the_permalink() 替换 get_permalink()。
8 v. S9 h) @" J1 s S- _$ Q( s4 ]% ^% q
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。
, X( f9 m" N. X/ f" C7 P$ [3 R* V7 U6 x+ X0 Y
用 $this->content('Read more »'); 替换 the_content('Read more »')。
1 Q V9 @6 M. d/ H
1 e1 F- n5 M/ F: B' M8.添加 Typecho 标记4 C8 r. j2 a! w) k1 J7 O8 p
1 @3 J' J) I7 }
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:1 m7 d6 h& \& i0 ]% X# g3 }- l2 z
+ Q; h. S( B5 D9 e+ ?php
# C3 k P! W# Z* k<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>3 a7 e( n1 u* z
<?php $this->need('header.php'); ?>
, i. m% d9 z2 S* |& }: u<div id="main" class="container">, m. T) [) e0 d3 L4 M! b; J
<div id="content" class="row">
$ ]# Q. ^; Z( O- ^( S5 E <?php while ($this->next()): ?>! o E, @) E% J
<div class="col-md-8 col-md-offset-2">; w# k8 P9 a6 z$ z' Z$ F
<div class="post">
* g! ^! C% k7 t, G3 M5 O <h2 class="post-title">1 C- M- m5 W! ]; ~
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
5 a9 U0 n! Y) R% S; T </h2>3 I1 W! r5 z8 F' d2 m
<div class="post-meta">' @: C6 s% L9 x$ z$ y' m& [
<span><?php $this->date('F j, Y'); ?></span> S# T3 ?1 ]5 O& \1 o
<?php if($this->tags): ?>
2 s7 p* n! j1 Y Q <span class="post-tags">
7 |! v& j& r$ M o <?php $this->tags(', ', true, 'none'); ?>
8 y7 ?" @5 K5 w) f& l </span>
6 b4 E. o. l8 v; R. S* J/ g <?php endif; ?>' S$ G+ ^+ L* B; h7 O9 E. o
</div>
* x: ?5 @; @5 N( X! p$ C5 R" z <div class="post-content">
3 }- ]0 |$ @+ N) ]7 n! } <?php $this->content('Read more »'); ?>, t! D. z0 T$ P6 S: K7 t, }
</div>
6 |# l( s' c4 {+ F* m8 o </div>( o1 x6 ?% j. [; @
</div>; {1 j+ C8 R. v# B* R" [
<?php endwhile; ?>$ m$ n, h( ?) a2 a0 ?! M3 E6 V
</div>
" i5 \! b4 Z) E+ o/ r/ W6 |3 y</div>+ Y! r5 z# l. a! j
<?php $this->need('footer.php'); ?>
, S c, A4 {1 o8 g2 m G9.调整其他可能需要的文件和代码% N2 o! {. r f: X. G( u: A
* @) J$ ?% B* Q7 W2 S' I根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:+ R2 J3 b( N& Z$ R3 N& Y
- [- m X; e6 g; }5 ?% T/ dhtml
9 s6 h8 L: Z8 S( i+ j% u' }<title><?php $this->archiveTitle(array(
L4 W6 x- C* r4 @; X! k" |& F, K 'category' => _t('%s'),4 Q- b* l3 K* K2 ~+ D" }0 d
'search' => _t('Search "%s"'),4 B, Z `- w, c2 |0 R2 Y
'tag' => _t('Tag "%s"'),1 S0 W' v* S9 \8 C" B y$ y2 t0 u! Z
'author' => _t('Author "%s"'),
2 W0 X( v0 d- ^: s1 C0 l, {5 o' \ 'date' => _t('Archive "%s"'),
& d3 Y0 j; C# _ 'default' => ''
# w; Q' |5 G5 {, N8 w8 v ), '', ' - '); ?><?php $this->options->title(); ?>* B- |2 e4 f0 b: z) w7 {9 ^
</title>8 |- T4 I- _- B: V
10.使用主题: Z" X2 c! f4 y
" L7 o. R9 O# n# C7 ` g) ?6 T9 u e登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
8 A+ f# m! M# k, e3 ^- [; ?! e, B. ^, N5 F5 X% a& T- x: [' [& K
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。! t1 \- j) a! I2 I5 Z
' I' `2 l: p& b' P |
|