|
; E$ o {% W! P" _/ p [
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:$ w; O# n& w5 P$ M% C9 K
' |, g1 S2 m, {6 h
1.下载主题文件
! T% T! q9 X, d5 s9 g' T4 e G3 Y+ W$ p: g8 K, K% B
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。9 v7 p/ o) s& I/ Q* N4 j0 |
6 k, S+ ^+ w2 S% W& T" s4 K
2.创建 Typecho 主题目录4 ]0 ?# X1 E( F& E7 F+ f- Y& P
1 N+ D5 E* r3 y; ^在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。
3 P1 V4 z/ y1 O7 \) Y
1 `- X' J4 Q) S" |: m1 w$ @3 S% r3.解压主题文件
2 }$ y. N$ ]3 y- _8 U9 I6 r* X3 v: i4 M4 d, h# y
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:1 g! [; L' s; M
2 v& r. b _; I( J! I! ?1 M; M# uassets/( ]: q& }) i$ c! a& u2 w' [
dist/8 p& f& J& p+ d" o }
inc/
+ N+ L% ^( I/ i# D9 fnode_modules/; F- ?! f7 g$ G f0 a# J: ~' E3 R+ Q
partials/6 Q. C: g1 J! B4 c
templates/
; v2 |! B0 m8 k% k' B2 R! B4 a.babelrc
% C( Y" r- E! R.eslintrc.js* e1 h7 f9 [8 U7 M! S1 `/ d
gulpfile.js
3 d/ |1 ]7 a# S9 ~; xpackage.json
' t7 i1 j* `3 d9 r. S8 I* [webpack.config.js
; N9 D& Z: c! L% k j% B3 x4.修改主题样式表文件
& k+ e& R; r% q1 e6 o9 ~, T D4 u. j
1 ~2 {( u! D5 V修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
+ s3 O1 |: P" _) T" _
" p+ u ^& O* k) W' `' ycss7 O% H4 o& h$ R7 Z3 p9 i
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');3 g9 k4 d5 X& F/ Z) }' Z# T0 u
修改为:' H% \: G5 D! W* p; k; d
- g: P1 Y0 c: s4 `& \6 ~css
) T( i6 P+ g% n: Nbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');& O2 _5 X: @7 H0 M( x: G
5.创建 Typecho 主题配置文件
9 V- K* ~# r3 B, A- a f6 r4 z8 W* U7 O, H
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
, Y! F# u) f/ k4 v- {# H' v. b7 V/ d; L; r H) \7 ~, w$ h
php1 l0 ~: c) T: D
<?php
' a+ x6 ?$ Q9 d! Lreturn array(( Y' B& f* ?" M1 j% J3 i
'name' => 'Heropress Pro',2 R X8 G- O( ~
'description' => 'Typecho adaptation of Heropress Pro theme',9 ~4 e2 Y) G! [4 I# M/ z
'version' => '1.0',3 I( w( q+ ?) ^) A' U$ g2 o
'author' =>'Your Name',
2 f$ }6 |$ N8 m$ `+ X);+ K. ^% x4 J, S9 W1 g5 p0 T6 m" g
6.配置主题布局文件
+ g, q6 G/ u2 {+ }2 a# u- d' \ v/ {' d$ F
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
. l$ I/ U# L5 @3 O# q; s1 ^1 p5 U0 i% {
php# }. u& k4 y$ L
<?php while ($this->next()): ?>
4 r1 X- {; c+ M, Q<div class="post">% X3 @3 {7 Q$ m5 O+ ]' o6 |: o5 v
<h2 class="post-title">- E6 y1 i8 H( y1 O4 s
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
* U% r5 a5 W" e7 @ </h2>5 ~. ?1 L, P( B4 g7 A6 y
<div class="post-meta">! [. }0 l1 j; @" g8 p$ N4 Q, J
<span><?php $this->date('F j, Y'); ?></span>/ W! s$ j. ]7 I
<?php if($this->tags): ?>
/ n$ o9 Y% X; v% W) u6 c+ z <span class="post-tags">
" ?! A" Q3 H& Y& Y6 S( d <?php $this->tags(', ', true, 'none'); ?>
, ]' Z8 c9 ?( |6 U4 g </span>' K4 M" k) ?( E
<?php endif; ?>
5 S# j1 c0 P/ y# f ] </div>
5 f1 k9 `" Q5 m* ]# |! h( X) `) }0 f( o4 j <div class="post-content">. |; @1 j# J* Y; @( Y! V
<?php $this->content('Read more »'); ?>
# b9 S6 U, w" E( m! l </div>' ]) C0 @5 ~; O u) Q2 `0 B
</div>
" ~1 y0 k1 H, H; q<?php endwhile; ?>
& m$ n6 n' A5 I/ W7.调用 Typecho 函数
3 ]3 l# m2 m, ^4 Z" p6 N
, ^" e! w: }5 p4 @在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
7 g. J4 ~* Q% }- s
9 N# E$ f9 {( D用 the_title() 替换 get_the_title()。
2 v( K6 @8 g; x- u+ ]+ h$ G+ D1 L+ H. D c
用 the_permalink() 替换 get_permalink()。
1 |9 Y& ~; T1 \+ |/ L9 R" B+ H( [4 R4 Y6 I
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。* n5 N) @# L3 L( T! ?
/ S ?9 J8 M$ {/ f. Z! G* Q2 T用 $this->content('Read more »'); 替换 the_content('Read more »')。
4 D: M: U3 D8 m, [0 g% r, ~( X
5 W- c3 y3 `! | e6 G' t% P8.添加 Typecho 标记+ I4 G! F5 F& Y
6 T$ _) V! u( ]! t
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
8 b% {+ s$ F5 c8 n( ?% F1 b- V' ^! u0 w3 p! J# ?
php* H& z1 i" D% v: \% Q3 e. X. s
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>7 w; Z; e2 ]" S W% I4 T
<?php $this->need('header.php'); ?>7 Y3 O6 s" r @: ?8 L# j
<div id="main" class="container">( |/ Z5 U9 ~' \) ~6 s
<div id="content" class="row">
/ w8 U5 H9 w" H8 [" H0 @' B- U <?php while ($this->next()): ?>
, u5 T& B& q1 d a <div class="col-md-8 col-md-offset-2">
$ s9 w3 j: |& S+ \, ~' J <div class="post">
1 J1 T, q9 u. a9 |% Q6 R; j <h2 class="post-title">, c2 M% H0 Q2 M4 L3 g% Q
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>( k2 ^2 u# W$ F& Z+ I/ M, v0 o# R
</h2>, n, @4 H8 ?" a+ m1 v$ M
<div class="post-meta">6 L" `! W' y' m1 h
<span><?php $this->date('F j, Y'); ?></span>% D) [" I8 R1 d7 C% M' j( i' }
<?php if($this->tags): ?>
/ y7 g2 l; m2 j9 x <span class="post-tags">
8 L8 @5 B4 M8 O1 H <?php $this->tags(', ', true, 'none'); ?>
% z9 I+ X" e( |; L6 l </span>
2 g B/ C( M; k, y <?php endif; ?>9 u" h% m- p" O7 e* o6 U
</div>
0 s! @, x1 Z% O8 S2 X <div class="post-content">4 D# F8 a& t" E, ?/ {* o
<?php $this->content('Read more »'); ?>
5 U9 g& a ]7 J: z7 ] </div>
' o. w9 U: m" n6 K/ p' l: U; k9 Y </div>3 [) \9 m% d+ _ R+ l
</div>
/ c; A% L G/ _- A7 @ <?php endwhile; ?>5 h. l0 h/ V; m% D+ y) N
</div>
( |2 d! F7 T( ^5 x# F: C+ \9 W</div>6 T1 l, p& ]) O; D& x1 O- @+ N
<?php $this->need('footer.php'); ?>- l! I3 ~5 c8 ^3 d6 p, X) `
9.调整其他可能需要的文件和代码7 g- R5 v$ o" |9 N
6 t1 t. ?6 A$ q. j
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:* d0 _2 K+ T. F. {
3 Q1 s( E1 _! i) E
html! t q R" A5 A) T! f6 {
<title><?php $this->archiveTitle(array(; H- T/ A5 V( U
'category' => _t('%s'),) f8 [" j; ^9 v# r& c/ d" B
'search' => _t('Search "%s"'),) p6 q$ y! s/ c
'tag' => _t('Tag "%s"'),8 {! i6 K7 F" O; Y/ W! u6 g. ]2 t8 M
'author' => _t('Author "%s"'),* C: S- ?3 ^# q' K6 U# J9 l
'date' => _t('Archive "%s"'),
4 g& o p: L/ @- T" |: y6 p 'default' => ''/ }2 F4 T0 U T
), '', ' - '); ?><?php $this->options->title(); ?>* Z) y8 q$ L! Y- e8 d* a% F
</title>! v& R- ^4 d* h+ P B. h+ {7 \
10.使用主题
" m+ c1 J, }# N1 b2 w e$ x; ?- R6 g; Z9 q2 w5 T& j6 Q
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。5 [% z' ^ v4 [" Q* }3 x
% z0 \" K; d: G) O
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。- X$ v& G/ z# ~9 C$ A+ Q2 y
3 B8 q& m+ i) H' o& E |
|