|
|
! s! ^; E s: H
可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:
3 I6 \1 r' t8 p/ \" y4 M, Z1 d/ d r) `0 j8 R
1.下载主题文件' e" V7 |4 R2 F) u
w# S! I' o @1 ]7 }
在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
1 Y9 I9 @/ f% ^, J4 g1 ?$ u8 u2 E, z5 _- o. }+ M7 f5 E! I$ @2 `
2.创建 Typecho 主题目录
% ?5 Q% L$ [! X u
% N- c& [$ G7 Q9 D在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。, p" l8 e( o) Y; R6 }: g
0 O5 G, E- s, B3 J3 J) Z3.解压主题文件( P- T4 i' g7 X" y9 y3 |
) R2 R' @9 g |: |% g1 j
将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录: L1 K+ O7 y# M( u# F* {5 @
. v J( |" R/ q
assets/5 o- a" ~; _4 g% J
dist/
0 m" d2 g& r! E% h, Tinc/, I1 V. l# Z3 {. B
node_modules/8 P- P" K8 \( g) Y' `
partials// t/ @8 g- e, q
templates/7 o+ P. z2 y3 |1 X* @- f3 z6 o
.babelrc
( t" K+ K% c3 x" _.eslintrc.js4 Y# N- q$ W3 y0 k9 N6 `
gulpfile.js
0 K A6 V5 Y7 J0 A; d9 A+ Npackage.json
$ j; H" ^: s; x9 {& ?webpack.config.js
& o9 ?3 G# U; W, D$ t" H# p8 B+ Y4.修改主题样式表文件
5 D% x7 O, N- V- q9 t
$ g& z& E# I: e& ~' x2 Q5 z( K修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
6 L$ u# S( _# P, v
- E6 y6 o9 a1 V5 h3 [css
5 S1 O% p( w& K/ I9 t5 _, A/ Q zbackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');4 X* g6 v) G8 R: P* j' J7 O
修改为:
; T4 h5 D* q# u/ c5 @2 i: X' F+ I* ^0 W1 L* q
css
* y+ s- e3 \! |$ r1 @* Nbackground-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');( G! i* |/ z+ g" R
5.创建 Typecho 主题配置文件7 k, x6 k% s4 K0 [: W
) P! D1 x4 M; W4 \$ J% ~
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:8 z( E$ F: }9 J0 x
9 @, Q" K) v! N
php
. y2 H/ R& @" Z* v& o9 f<?php4 I4 a8 _7 ^: S& x+ v1 K! Z
return array(
) T8 W9 p- g; P3 a; a( d$ `; I 'name' => 'Heropress Pro',
) [" m5 O0 ?7 C1 e5 \1 U, E9 O 'description' => 'Typecho adaptation of Heropress Pro theme',
0 h$ G! Z& ?. b* B 'version' => '1.0',
* K) w" G6 c2 x5 I 'author' =>'Your Name',
+ r; `% c7 p# M( O9 u. f- [: C, @);
% p, e+ M* y9 m0 R6.配置主题布局文件5 O0 j0 p; w* t2 F7 s
1 ^9 a' ?" r8 b! C3 a% h在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:9 {* i# [2 \2 G. W
8 M( m# ~1 @9 \( J* r6 Bphp1 Y! o: L8 ~! K! N0 E( }
<?php while ($this->next()): ?>9 x: q- x! Y( d* a, L
<div class="post">
: o" Q9 m q" p6 K <h2 class="post-title">
' h0 i$ D# p' Q# o <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
% C/ W8 G# `5 [5 k* A </h2>
, k5 R- i& c' _; l* j <div class="post-meta">2 F$ M J9 z8 Z- ]
<span><?php $this->date('F j, Y'); ?></span>8 g" n+ q6 |; _9 d6 G' W
<?php if($this->tags): ?> p- R h# C- S2 o. Z+ M
<span class="post-tags">+ j" f) j6 y1 S* j. E. E* ~2 \
<?php $this->tags(', ', true, 'none'); ?>
1 J5 B' G( h/ V1 l8 v: _+ P </span>
# g, K2 l" K& R+ g! V" Z" s <?php endif; ?>5 {3 b$ D9 s/ d% K6 m
</div>8 A* r3 A: M$ H
<div class="post-content">. z2 ]9 B X5 g B1 Z( ~
<?php $this->content('Read more »'); ?>$ |. H. O2 `' K" [; u
</div>
) ^3 L1 u2 M/ H( g8 g</div># X/ X; Y2 G5 g9 D1 b( [
<?php endwhile; ?>( y4 v4 B9 T1 F* |3 K! e3 M
7.调用 Typecho 函数1 d0 h; y! b n$ M& \9 \
3 C1 |3 {; f( v# K" A- C
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:
+ \+ W- r5 A. e) ?, }8 L+ B9 |$ j* v6 z' I- |
用 the_title() 替换 get_the_title()。
: V2 M7 Q$ p* B" _3 c' F+ s3 c9 H0 S. N+ Q0 Y% ?
用 the_permalink() 替换 get_permalink()。
: W( l8 ?. j/ D. W# J' b! _$ p' z$ l. \0 @ \- \+ V
用 $this->date('F j, Y'); 替换 the_time('F j, Y')。# r9 s& C. |5 [0 D% ]
+ ^+ V. \: M5 A用 $this->content('Read more »'); 替换 the_content('Read more »')。* _8 w8 M6 C5 L0 ]0 \4 \
O% b3 X$ F2 Z* A+ E$ y/ r8.添加 Typecho 标记4 c+ ?- a: A9 |4 A& B9 Y
) M7 E# i8 i2 A; k
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
- n7 l/ Y$ r5 ^! H# @+ r$ q a
" W5 _ H) W% I Lphp
2 [* O: L2 g$ e6 N& V" b' T* \<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
1 \! q* s0 B9 P* l7 H, q' A* y<?php $this->need('header.php'); ?>
# k, C6 r. g7 H: c4 j. d3 u<div id="main" class="container">
( {) O# O" {* K; Y# e" D <div id="content" class="row"># e/ k, i8 l% J# {
<?php while ($this->next()): ?>1 u, w4 @6 U' G
<div class="col-md-8 col-md-offset-2">
9 ?2 S+ f, z# T) d e" Y <div class="post">
3 w5 Z. e, s) ]% m <h2 class="post-title">6 g6 ?! J% A7 o4 x$ d! B
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
5 w/ ?: G4 i& q& ^ </h2>! z4 A7 ^9 E, J, ?- G4 B2 p5 ?
<div class="post-meta">
$ N9 g) @9 s1 ]. o <span><?php $this->date('F j, Y'); ?></span>
; I! R t* X+ S" m8 W0 H <?php if($this->tags): ?>* o) h M! u$ f7 C& o" l% Z
<span class="post-tags">6 U; }" R& @; M* F
<?php $this->tags(', ', true, 'none'); ?>
% c- ]8 x2 p$ ?+ Z/ A </span>! }. B% j( t, G
<?php endif; ?>
& e* N/ Q9 O$ s9 m5 ? </div>2 \* Q: D8 K* u" V* [: E
<div class="post-content">( C! t5 ?& e- W
<?php $this->content('Read more »'); ?>
$ F3 n4 c. b8 I+ e# u% A/ H- `. M) A </div>
) u" c' h% S. }0 I5 W0 G8 X% [ </div>
4 V( D7 n0 n* X! a" W$ M5 D </div>
' n" z# _2 H9 g* W" @. |% h) ` <?php endwhile; ?>
- R4 y; T! C% ]# Z$ p2 j6 J/ n </div>! H9 P- Y( E2 d4 G
</div>
3 n4 n; w0 w) X' t! f<?php $this->need('footer.php'); ?>4 B1 T% ]5 \, x& ]; i0 ~2 G7 ?! |
9.调整其他可能需要的文件和代码, P! f5 z3 e+ m/ P) y
+ E- M$ p, r. ?. P
根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:4 {( `6 a0 e7 w; V: h3 ?$ e
: j, w" E1 D a- J1 ~ t8 Y4 Z
html d! O" y- Q, K! i7 ~% l$ ?
<title><?php $this->archiveTitle(array(. ^ }+ e/ B( S; b! m- ~" K- L& _
'category' => _t('%s'),$ i6 o" E" C" i3 P$ W7 O9 D: k: Q0 X; N
'search' => _t('Search "%s"'),& h$ ~7 P8 W% t6 L. q- W1 r' m
'tag' => _t('Tag "%s"'),
; F" B8 s' H% Z$ p3 A4 ~8 A4 ^ 'author' => _t('Author "%s"'),
& M; O' w0 J+ F! ] 'date' => _t('Archive "%s"'),
2 b3 {8 ?9 t) l. K 'default' => ''. ?$ }! w! |. g
), '', ' - '); ?><?php $this->options->title(); ?>, G, V% X: l' B* B! g
</title>
* k9 V9 h, l3 Y8 E10.使用主题
( [" b! `# ?9 L3 y" R/ A2 V% v9 [' U: k' R% n
登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
) g, ]+ e5 V1 `1 Y& B0 M' \, P _" E+ q7 A4 r
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。7 C4 o' o2 ]0 ?2 Z% n( z
& _$ o% `# h( Q z4 z' D |
|