|
|
+ u+ m) W' J+ X& n4 R0 o' F可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:7 S4 q& t) O8 e# v
, ?* ^, f* X F. g2 T
1.下载主题文件
. U' I2 A3 k% a# D/ X# j# v! D: }0 R1 O* U( G% Z6 l7 T
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。' D7 \ J; I" {( _9 q* }7 }! c6 W, E
]' L* n& ^9 e+ N) d2 F2.创建 Typecho 主题目录- B$ O( }6 m/ ]
7 F! u& @; x# T+ Y/ b( e
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
7 j0 {0 |5 z7 I+ s: z% ]' X- {
; P& w9 d5 G& S4 f8 U! Y6 `3 T3.解压主题文件 l8 v* t! H8 \' O+ B
, C2 j. d$ k6 V4 {将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:4 e- z* k, m( P! ]* q) s- k" G
6 U" @1 {! W6 G, Y9 y
assets/0 P% ^' @. z% m1 |, N
dist/8 ]9 t# N6 U* A8 |: ^
inc/# [, r! D0 i# {0 U# {7 C# G- k
node_modules/
2 K, S# F' z% q: q6 Q0 ~partials/
# f! T. U3 A$ T+ {. m! `; L* Otemplates/! e; s( A) B3 \1 }9 T1 A' Z& i9 ~" r
.babelrc
3 I4 e+ X5 R% X6 O, H.eslintrc.js @1 E( ?: I: q
gulpfile.js9 |; b$ a" W; f: C" _* L' ?
package.json
" x0 @! x' @) ~3 Z' O% v' A1 D0 _( Swebpack.config.js5 m8 Z" C/ A& H4 M# {" s
4.修改主题样式表文件. o, b. W% D! x2 }& ^0 W, N# O9 ]1 l
& R. k1 U: E P' g# e修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
. h, b2 h+ u3 c ^! @. d5 q" v. k" E7 G) y; {" [' _4 i
css9 `; g1 h/ {3 e8 D: m: ]
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');& C7 ^3 h! H% p
修改为:4 r1 n/ N& W) A: [& n
, z+ D0 f1 T# H4 v+ gcss
0 s/ A( D4 X' Hbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
8 _3 D0 u0 r3 K _; c7 C4 a5.创建 Typecho 主题配置文件& b) J+ j V5 b( ^2 ?# R
+ z5 q9 ?& o, V7 v在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:3 B; y. |& h$ d, V0 Y. d' l: h r
- m4 n7 }/ N; \' r9 Dphp7 h) z4 c1 C8 c' R Z- A
<?php% J- X' q; k& ]7 ]
return array(+ |0 X1 O9 y# F0 c0 {/ t% [; s
'name' => 'Heropress Pro',0 y8 q+ M0 L% D# I* C
'description' => 'Typecho adaptation of Heropress Pro theme',1 o; D8 D2 o/ B/ j2 \
'version' => '1.0',5 z$ K+ f! M) z0 f6 v4 ^
'author' =>'Your Name',
2 _, x, B$ \& K) N& c/ k3 Y);
1 K! f4 e8 z& S: r6.配置主题布局文件) M% y5 a6 s: g2 r
+ K z- P% [% Y( {2 y1 d; {, w
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:0 U; i6 a9 ?8 I% E) s
9 i! ]; K( l. w4 h4 H, Qphp# _1 O) x, r/ u( R, T
<?php while ($this->next()): ?>
) ^! u1 W9 }* Y# H6 b$ C; J, L# z<div class="post">
% y- {! S6 S% ?- N* e2 y* @. ] <h2 class="post-title">
$ P6 g! y7 U; Q% ~* `& E) x9 O$ I <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>. x) @$ ^& v( ?
</h2>6 B: K5 v8 q) T4 O3 ]
<div class="post-meta">* m$ X8 j& x$ D' F6 P, {
<span><?php $this->date('F j, Y'); ?></span>( X& M* u* _ I( ?* e
<?php if($this->tags): ?>( o/ \' h; }2 i! k: ~$ _
<span class="post-tags">
1 o# `5 K9 L* K5 h: k <?php $this->tags(', ', true, 'none'); ?>' M0 s2 A3 Y0 `& j' |
</span>
9 F/ \6 W" j: q <?php endif; ?>7 u* g9 e5 E6 h5 q: k) k
</div>- `& Y2 m, n1 s. R( `; E& }
<div class="post-content">, v) r+ i4 A1 e, o
<?php $this->content('Read more »'); ?>. d) `$ b5 ^* K! m1 [
</div>
5 M* C7 L/ F8 X9 O+ {) F* I( r- I</div>
0 ^* X' O- |" @) c$ d<?php endwhile; ?>" h$ N ^" S! B+ p! F& l! F
7.调用 Typecho 函数5 o j" c# K1 R: I% e+ h
8 l+ C. r3 F9 g" @在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
' I: D+ ]1 w$ {- Q/ E: j9 P; i
$ N }. h. A7 {6 t& R用 the_title() 替换 get_the_title()。0 T# H! K" k9 i0 L# M
/ X( q$ B" |( D, Q8 C5 D, t" d用 the_permalink() 替换 get_permalink()。4 `& o' j4 {( a" i; p5 R5 O+ k$ A
! U6 I3 g, [; j2 M( M用 $this->date('F j, Y'); 替换 the_time('F j, Y')。* u. I+ i, @1 G( T% S- I
* _, N- V+ C8 Z
用 $this->content('Read more »'); 替换 the_content('Read more »')。
+ A; U; ~% q& h# C% G: a h" K3 k4 H1 Z+ H1 J" W. Y( h& W; y7 a
8.添加 Typecho 标记
: q) ]; g& \# C9 Y0 r/ H
, \% B( J! {& Q: C' B& D( ]在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
5 q3 |8 v! y2 H8 X3 }- c
, I* Z5 b& s9 M4 I iphp0 Z6 `5 S9 Y4 i
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>; X( v1 }' S0 {% I; _5 O5 [
<?php $this->need('header.php'); ?>
* P' `% D/ G6 E* _7 x3 F<div id="main" class="container">
* N. `9 c7 E9 @& w- V <div id="content" class="row">
& P5 v" [2 ]- y6 v3 m, ~$ L3 X" k8 K* q <?php while ($this->next()): ?>1 G3 h l2 _6 N3 \
<div class="col-md-8 col-md-offset-2">
& z) P6 F! q" j2 s+ C( v8 T, G <div class="post">
) D! n9 W5 |, c6 \: g T# {2 j7 U <h2 class="post-title">) |% C; n% M5 j9 |/ R4 f6 X
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>) f" O5 o; r) o
</h2>
$ n9 c; F/ g9 P! X <div class="post-meta">
6 g0 L8 D# C* }! P- g$ N% w5 c <span><?php $this->date('F j, Y'); ?></span>1 h- }, ?% q0 _' d4 O7 }6 L2 d
<?php if($this->tags): ?>
' C! u, k+ |& G8 ^$ y6 m& \ <span class="post-tags">
# @7 C* A7 O( G5 ~9 R1 @3 O4 O% ^ <?php $this->tags(', ', true, 'none'); ?>& l" i4 O2 D! w& w
</span>
8 C% P$ J* e. v) l7 p7 T <?php endif; ?>
. ?4 q; B3 C* K3 U) e/ b </div>2 o7 f j7 B. i( F5 {' m. ?
<div class="post-content">
, g H4 u7 x2 H. r# ^4 ^9 L <?php $this->content('Read more »'); ?>) ]/ Z! h2 h. |, r, ?, ?
</div>
9 M4 z& t! H! h+ k6 K5 Y" _; Z </div>
) m9 C7 I8 C( Z) F9 G, S( { </div>) v" b+ l+ S0 D- ?( }' Y
<?php endwhile; ?> f! Q0 |% b* s1 N
</div>" r/ E. d* H' x( a9 S8 J
</div>9 k/ N2 e* T7 W
<?php $this->need('footer.php'); ?>
; w4 z9 \+ F6 ~; a! E: d6 w9.调整其他可能需要的文件和代码5 R9 z8 ^ O6 N" Y" H, A$ J
- b! I ^( K% J, \
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:5 ^8 q% n$ \6 A. A- c
, l8 D h2 e, i2 _9 P: ?
html
" W! x: p% }/ v<title><?php $this->archiveTitle(array(
+ n) j) a: C# R4 Z' z: o" d 'category' => _t('%s'),
& _$ V9 u$ ^9 @( Y4 w. j. G 'search' => _t('Search "%s"'),
- ^5 |( [' {4 i 'tag' => _t('Tag "%s"'),
5 W) C. B$ S% j$ g5 V) M 'author' => _t('Author "%s"'),$ A4 ^, \# C0 g W1 _
'date' => _t('Archive "%s"'),0 {4 I/ d5 L3 @- K/ b
'default' => ''
6 ?. U. k; E9 p1 O) @ ), '', ' - '); ?><?php $this->options->title(); ?># I& \! z' H5 }: [
</title>
( c3 c/ w- Z: Q, [, J- Z10.使用主题' n1 y T/ q9 i; p/ g8 J4 w
$ R- B0 X! T$ c登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
1 d( D1 {1 u9 r; v/ ~) a( l7 J$ @6 o" J1 H, d
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。6 d8 @; M; M: r/ w" l! [% S% J; n1 L
7 z; [& i) _7 `3 g- j, t: `2 J |
|