|
|
6 H7 O/ U3 { r" Z
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:* J* M9 D& X/ Z. ?# F, H& T
# O! S w, T- E; A* q3 C
1.下载主题文件
/ a1 k0 [7 {4 w4 I6 ^ g% e5 s& A9 Z3 @9 p* a
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
1 c2 X; a! s( }* i5 R) G. c5 P
! `& K+ M: r( w5 u; J) R2.创建 Typecho 主题目录$ ?4 V' @2 F h" u
2 |7 B6 D I2 y在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。, y) h1 X9 ]4 F3 i- @
0 @# g1 s! W1 Q1 z. n. J3.解压主题文件
7 _9 ~* ^$ U( e: I6 y
! ?: ]3 ]8 ]; m( E/ _2 E' H将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:% \* `7 ^4 g5 z% K
* X, L* e9 X5 L% s5 r' x2 R
assets/
5 }, v1 k7 ]9 G* k, \% mdist/* P1 V& } `$ u0 `) \2 r* f
inc/
* Q) E% a' t0 n+ M! cnode_modules/
( t$ [% Z6 @9 W8 O5 B. ^6 ^- epartials/0 |/ ~ J* }; ^2 F
templates/
2 K _. W' ?! K, `: _& f. R.babelrc
2 \% I& U. x4 V1 l.eslintrc.js U, a0 I* \. w
gulpfile.js
* }1 w) Q2 U: h* b( y4 e+ |; Tpackage.json- Y. |: m- k4 d0 O; l& c
webpack.config.js; x: W+ j$ H. ]
4.修改主题样式表文件+ v( h# O: f0 t d1 ]- S$ _
5 a6 V' W; ?, |* _
修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如: Z# t0 s9 `2 w3 q1 Q$ b# i
* g5 A) p/ h; s% n+ g# E. x/ I
css
$ {" G# W0 y7 `, ], j5 g1 ibackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
6 v; ?. n) t6 J" P& z) T2 v修改为:
B9 n [% z8 u( b5 E. d4 b( K3 e$ Y2 N3 M
css
8 A) h" `# t% X" v- D& tbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
5 u8 Z" z6 X' j! h5.创建 Typecho 主题配置文件* @& i% p r [- q1 n
( J$ J4 a# N [7 N+ b在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
9 m. U' L5 J7 b+ r# I9 Z0 i7 \6 o3 K' L" B
php
% F# ~; N/ z! l# L<?php/ x+ s! L0 T. P. ^; F* r# ]
return array(9 r K9 ^# \% g% C5 J
'name' => 'Heropress Pro',( M. y, D2 P; C r
'description' => 'Typecho adaptation of Heropress Pro theme',
% Z& A) [' h- @7 O) s* ` 'version' => '1.0',0 L/ [1 Z6 E5 ^6 H7 @
'author' =>'Your Name',
2 @! m9 \# q7 T( g* t6 i);
9 c8 @1 f1 q+ s1 f$ ?) N( A6.配置主题布局文件7 u( e! Y4 H, t, ?+ P
8 x1 j) B l8 r& x; h- W
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
) x! i1 d/ G: }9 y q. v! E( m, u% e* Y; G2 F
php
6 \+ s) W9 P/ g G M<?php while ($this->next()): ?>
, o7 f) m; Q7 z7 {- O/ V! i) J<div class="post">
7 \* D+ Y5 K8 v4 P# ?+ @1 d <h2 class="post-title">
$ S$ e. G. K3 x0 j <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
8 x4 N6 K' |* f6 n </h2>1 }# f6 g* n; W, K: m
<div class="post-meta">; B* J( _* }8 z2 i
<span><?php $this->date('F j, Y'); ?></span> {' ~8 [! o: I
<?php if($this->tags): ?>& j& L" }9 X) S
<span class="post-tags">
& W/ y' F& ]6 c; h( r% Q <?php $this->tags(', ', true, 'none'); ?>
+ S; l( p* q. V F; I& V; F; U+ ] </span>
; t2 E' a' ~5 V2 a4 ~8 ? <?php endif; ?>8 b/ K# H, N7 S- b6 |
</div>
6 r! J6 _0 y& `- k <div class="post-content">
+ t7 i& F' |, {7 F/ I <?php $this->content('Read more »'); ?>
; N8 N- M1 D; }! d8 ^ </div>1 Q$ E1 V7 V( S" l" \5 ^; T
</div>0 |7 M# ?1 n1 Z* y$ u
<?php endwhile; ?>
9 L/ C2 n) A, q$ r6 ^# L2 p, ?7.调用 Typecho 函数( S5 Z+ `# P# v7 ~- s/ i& a; P
8 }, V* u, o, l# j. G$ u7 q! P在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
4 ?2 i5 _$ N; s) w9 F* W& c: W9 j: W
用 the_title() 替换 get_the_title()。) z* p8 Q. S% @+ {! Q7 z1 j
4 ^; N k$ E$ U9 W
用 the_permalink() 替换 get_permalink()。# j! y# C" Y) B( s& e
6 ? t+ Y9 f$ _3 u2 @2 a3 X! C( d
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。
g1 i$ P" h& K
6 J+ Q) A* C# N; p用 $this->content('Read more »'); 替换 the_content('Read more »')。
; I$ M0 A& p6 ?0 n1 j
% e, R* k: y+ m' [; t" a; ^& d M8.添加 Typecho 标记* t+ J0 w6 h# [2 ^- c0 |$ h2 q
0 {, [8 P( `+ {* M7 x' h5 F
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
8 g, F; x$ g" \# A, n w7 e8 Z" y. s3 {
php3 q! D0 x. Z& K6 o x* L1 a
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
5 a, K2 ~% B1 O/ G6 a<?php $this->need('header.php'); ?>+ I1 x% R; r z$ U
<div id="main" class="container">
- f0 P! { J2 V* k# }- s <div id="content" class="row">% Y. l$ X# \9 b0 m' t1 ~
<?php while ($this->next()): ?>3 F* m6 F$ b8 T6 \" }
<div class="col-md-8 col-md-offset-2">; s% ^9 c8 k0 w0 q5 G U9 z" e
<div class="post">% l1 a$ w5 p, }
<h2 class="post-title">
& C$ D! Y7 K( i, e3 h2 d+ `* \ <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>" m7 v+ T. Z3 n
</h2>
2 N. j. j% T" X& S; ? <div class="post-meta">- [8 f ]& m9 g$ ]
<span><?php $this->date('F j, Y'); ?></span>5 D. \ T1 F4 E. F( V, p
<?php if($this->tags): ?>
' }- q2 h+ X& b! e/ n+ d p/ \. \ <span class="post-tags">/ z# v [- ?* ~3 n
<?php $this->tags(', ', true, 'none'); ?>
1 l' S- K' p( M V& A </span>9 E; Z$ Y6 D0 @# _3 ^3 l: D* i; c/ y
<?php endif; ?>& R- S) p/ k# P3 X( i
</div>
+ l5 G: X. V* _1 R4 ` <div class="post-content">) M/ ?: b4 {, ^# w! b
<?php $this->content('Read more »'); ?>) n' N, J) F4 }8 F
</div>6 T6 A) m \& G+ g
</div> a# U1 v, | E3 {7 p* f
</div>+ G4 K8 E) ?! o& O4 H _9 |' F l) H& l
<?php endwhile; ?>
: `+ d4 Z% v" C. l3 J0 h </div>
2 \5 b" q+ o! n, Y& c</div>
- [( {) V0 v$ }, y6 B<?php $this->need('footer.php'); ?>
. U6 A1 g, `/ z9.调整其他可能需要的文件和代码
" l* P+ x( [; l' E- \" F; j; U2 {( Y# I, Z" b" }! _
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:
$ |/ M1 {# o1 L4 l( ?) {' G5 Y
1 E, m4 R9 Y8 G+ z! N8 @: F0 P3 ohtml1 d' k' j5 W& [% |3 H' O
<title><?php $this->archiveTitle(array(
) u4 J/ u" _! R0 G. ` 'category' => _t('%s'),( J, K# F4 ^2 C1 H( W4 `6 T0 a
'search' => _t('Search "%s"'),7 U' N- A; N( T: W9 t
'tag' => _t('Tag "%s"'),5 x# N4 C1 S1 V' Q5 o" Z1 P, |5 i! V
'author' => _t('Author "%s"'),
% C) T$ a7 {4 l: L) n- Q 'date' => _t('Archive "%s"'),
. j, s% R: U; x* M+ n/ h 'default' => ''
( s. X- G X* {) a ), '', ' - '); ?><?php $this->options->title(); ?>
$ ?, @1 a. n" l- q</title>) V* n( b, \7 c$ z
10.使用主题* V/ r3 o* v0 x: E( \
; E8 d# ?0 H* y2 v# j
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。' \ u: p( `2 m* I" p2 ?2 v% H
& _$ H, @2 O/ q8 v, M0 m
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
5 K& P, v- f; c! T( a4 J# f# U7 ^/ k( @& z
|
|