|
|
: Q0 B7 p: |( k可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:0 y; |8 M% `! E, A- R
. K: i/ x. g( U/ ^0 r
1.下载主题文件) \ o% U8 [1 h2 o3 n, W* C
$ S5 C+ d. @. D2 G. i7 \8 P- V在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
! Y+ i. { o: ^* d; g9 F* o9 f: N, `4 J! Q h+ p
2.创建 Typecho 主题目录, ~7 n9 T, Q y5 |
7 [: r2 _% d8 K在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
' T, Y9 y) S( A& ?
7 H9 `0 S! S( S3 Y6 p3.解压主题文件" M$ _+ |; t$ {7 t$ e5 z
5 z0 F. N! w) b将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:# M5 y# W: H, T6 `- y
5 Y; B$ G! x* ^7 W. Rassets/
+ z& ^6 c! O* vdist/' n5 @0 J+ z9 N* L) o5 N
inc/, Z2 h+ H9 h( X; y( U
node_modules/3 F+ @' |' ?; h' m" Z- i
partials/
2 l. m( c) \ {$ s( S; Ytemplates/
- b6 J1 ?" Y7 Z! k% ~$ [) _; ^.babelrc
7 R; Y' Q# f1 ^# c.eslintrc.js( M1 N) v7 N& D: t7 p8 E3 e
gulpfile.js
4 T# U4 [/ i, F6 lpackage.json
( c6 x! Y: S* { Cwebpack.config.js
7 y4 F4 S3 v3 M1 ^+ `: e4.修改主题样式表文件
$ y8 s' j+ ?* Z) G' B! d
& F# R& }4 s. S" g: C修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
. ?6 o. ]$ D/ Z3 K) [9 C* s# N3 b% x2 w$ j
css6 Y" E! c, I! U A+ I
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');# M8 } F, P" |' a0 X
修改为:
0 M: H) ], ]% U1 k5 n: ^
$ ?# G* h0 G2 s% m% D/ K2 Jcss
0 y( p0 a3 D0 p- o( O! x. c' sbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
- T1 Z" f$ L1 d- k5.创建 Typecho 主题配置文件
+ Q1 V! F3 k5 \1 ^* t4 w% h! y S6 z5 M
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
+ `7 b3 ~" G" A4 Q) Z* t1 h: ]: u! ?
php' v3 x5 n: s+ m" [+ t
<?php
( x# n7 M2 K# ]$ ^! ereturn array(' X/ e3 ~- V. Y" Y. M9 z' o) N5 t, e, D
'name' => 'Heropress Pro',9 N, u, V2 T) C$ k/ p, a5 g
'description' => 'Typecho adaptation of Heropress Pro theme',
2 M( A5 L4 X6 Y! S4 ]2 }8 V 'version' => '1.0',, l- Y: A0 ^; N$ e& F+ R6 y
'author' =>'Your Name',
5 a$ Z2 ?* v2 F0 c3 y N4 @* J4 t+ o);
- d' O# t/ }$ E/ x& @. z, f6.配置主题布局文件
h, u; c$ k5 E* N+ v! M' J u, [
1 |. t6 F. T7 Z) z在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
- ]2 Y! u1 b. R0 _; T
+ T6 K) J; {5 b, pphp$ o# o* D7 _9 w' y/ Z! f
<?php while ($this->next()): ?>
, d; S; k6 l! B7 B1 ]! q<div class="post">
" O$ O# Y! h n3 W <h2 class="post-title">
7 k% |# V1 E5 I m; b, m r5 w: p <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
' M: I' V( ?0 j" T </h2>4 E0 p0 o# G- y9 n* @
<div class="post-meta">
0 Z8 b. v& T% r8 ] <span><?php $this->date('F j, Y'); ?></span>( n, n- V6 v7 L# D1 V
<?php if($this->tags): ?>: }7 z$ R6 F4 r1 A
<span class="post-tags">+ E: Z. V0 f/ I; u5 Z2 h V
<?php $this->tags(', ', true, 'none'); ?>' ^3 b6 d O# X: {" T$ X5 H
</span>2 g7 U- ~+ P8 i: \! F9 t9 K
<?php endif; ?>
( y+ B( Y0 f5 Z </div>- P# ]* `( W4 b) ~8 j2 n% [8 X
<div class="post-content">
. s* Y' [/ M8 ^9 {9 y <?php $this->content('Read more »'); ?>
( C8 {3 N& P6 Q" ?5 e$ i" h4 r </div>- z, a4 u+ H3 L2 { x" {; r- A( b' [) X
</div>5 `5 a x$ E8 A! l& i# o
<?php endwhile; ?>
. s# x" O0 I8 t$ r7.调用 Typecho 函数
& E/ i! e# w8 n* ?7 v" N/ ^' S
9 h8 t: {/ ?, L6 m- b在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:7 P+ B A# a3 Q
1 u7 h: Q; w; n1 [, \0 }. U
用 the_title() 替换 get_the_title()。
; R9 `0 t" r2 F2 J$ l5 f9 {7 L/ h" a
用 the_permalink() 替换 get_permalink()。
0 y- E( P! l) L7 m' O* q( {, l* M* V" D) w
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。* X# ]9 V& a3 I$ p3 v
! b+ i# k* L# e4 t
用 $this->content('Read more »'); 替换 the_content('Read more »')。
7 q7 X5 w1 l9 R5 F# U# x2 e9 O* ~. N3 h1 ]- F
8.添加 Typecho 标记
* l m! F* u' f+ J
" J& M$ o- q8 z) P5 J在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
/ t: d q- A7 u7 t& t" i1 c, l& x8 j$ ]/ ~# w; c. H. m+ ]8 n! l6 Q) ^
php- E$ |) _8 f4 w# O; s
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
) Q* e2 K8 C9 A& b+ Z6 d) ^<?php $this->need('header.php'); ?>$ O! p/ M+ s: e, U& S& q1 M! a
<div id="main" class="container">
/ n8 S6 F2 ], L7 [7 T, o <div id="content" class="row">
7 o. F) M' Z+ i <?php while ($this->next()): ?>6 |3 e. Y: c3 A- j4 z2 z
<div class="col-md-8 col-md-offset-2">
' w/ L6 l; z9 G& \9 Y8 Q <div class="post">
2 B* R$ A- S' V+ f+ v <h2 class="post-title">7 X1 M ]# Z3 h8 K& I# W
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>& L' ~: s, S$ H( m7 d U2 d: M4 [
</h2>- S; ~1 [; A$ I" U
<div class="post-meta">+ v# o& \3 N/ A7 y2 Y
<span><?php $this->date('F j, Y'); ?></span>
; e# D+ d0 f' g+ O5 @8 o# @ <?php if($this->tags): ?>
; C4 L; h, ]3 v& H5 v& s U$ @ <span class="post-tags">
" Q+ N" ~" L9 y- u0 s' ^" z8 Y <?php $this->tags(', ', true, 'none'); ?>
4 y* q8 v6 @, b* X7 A8 ]7 d </span>' ^0 u+ P! i) L' U( o4 ~' G
<?php endif; ?>0 R) o3 S' i: [/ m, _5 k1 S) ~. F
</div>
( s( n% x; _7 X1 O S; y" p <div class="post-content">+ M% P) V1 t( L7 }) v' ~! F/ H
<?php $this->content('Read more »'); ?>" `, Y! y: S: P. a
</div>
! p6 x6 h1 J! m/ m/ E, L </div>+ d0 {) \/ P! b& t
</div>
) L5 `) V. S; | <?php endwhile; ?>3 O: k( K& z9 V
</div>
" x! d1 R; K; `3 N7 @1 @* f2 I</div>2 ]$ L8 L3 h+ W; o8 q; C
<?php $this->need('footer.php'); ?>
, Y) [* T- ]0 o. I" [. }- k a9.调整其他可能需要的文件和代码
$ I( a- i; F4 T7 l: H1 g. ]& }3 H& `3 t1 x$ s
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:
) e* i+ p) `3 Q/ _5 L* k# ]- [
" t+ _; k/ a2 w: Whtml
" c2 w1 L* k( C+ t9 d7 T2 Q<title><?php $this->archiveTitle(array() J6 M( v: A: G$ n
'category' => _t('%s'),, W0 k1 F3 k1 z( i, w. E
'search' => _t('Search "%s"'),4 X& R0 ~6 ~8 W [
'tag' => _t('Tag "%s"'),
. n5 P- i! z9 O6 j% _( t. [ 'author' => _t('Author "%s"'),. T' C$ e5 N3 e5 {# i4 ~; a" D
'date' => _t('Archive "%s"'),
; z; e1 s, w) A; i( F 'default' => ''$ d) t) i0 j j- W2 N! {" p
), '', ' - '); ?><?php $this->options->title(); ?>
5 F) G# I9 C+ d# m$ [ O4 n2 K6 C</title>2 |2 F& b1 ^# ^. i7 `" a/ V
10.使用主题
- ?" B/ O" Y0 a4 ]8 N. V$ G7 Q N; `% b4 g
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
$ E' a! L! s& b: U k8 [4 B! R, f! [# y$ L" {8 |1 m
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
4 W5 l' A" m8 G) J; q+ b/ J
( o5 R% t w/ e: `/ M |
|