|
|
$ J5 o1 x+ f5 Z" O可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:
. x8 T# d# {- m+ Q& U! ` Q6 z6 j
1.下载主题文件0 v% p- u5 S& c
1 `4 |+ B' }4 z. \; i在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。
; C8 ~( I' } o8 ^, m. ]% B0 }7 _8 ^& J2 n) B
2.创建 Typecho 主题目录
( }2 p# t& A r* N& ], {7 W# i b( j4 E3 R/ @
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。0 T1 H( r2 s% o
, O D. u" I/ Y8 s3 v4 i
3.解压主题文件7 y* t" D* ]2 @: s% ~( h! ?1 {9 e
6 a, e( i% B6 x, r* G将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:
/ O9 f( C2 ]) d' k, _% B4 b8 F( G6 P% v& |. j0 H2 V
assets/3 N# k8 g: e: c+ U5 p% ^3 g
dist/
, \- z# ]$ u3 Qinc/
& m* _8 P! ^! I" \5 n1 P4 _node_modules/
4 l0 _# o. p/ \+ E: ]% Q: Rpartials/
$ _/ `, ?8 z: v) \; ?templates/
4 B% I# M* ]4 N0 p$ n1 ]% N! f, i.babelrc
# z$ t) l/ I- r$ r.eslintrc.js
o5 t$ r7 w# `* K4 m; K v0 h! Ugulpfile.js
/ Y" b! w. q3 p* f4 e, @) _5 X) Upackage.json
0 j2 e4 v6 y- T- Swebpack.config.js
+ A" ~* k, E% w6 [4.修改主题样式表文件
4 u2 i% P* u+ C
" g# O! F- U( t/ u2 J修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
' v: x A! v5 O
) F! G+ |/ w0 r$ p" Q3 a; Hcss
8 i3 w5 k8 T; r4 Y. E: g9 b: lbackground-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
( h3 U0 v% M4 W3 o& c修改为:5 a: c8 B! a* q9 E
! I7 T4 ~) l8 I3 \6 { \; ?# `css! F9 {+ C& p* S
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');
* Z5 m( i' l5 g+ @5.创建 Typecho 主题配置文件, ]: a& u7 \: ^ W
1 k7 R+ _4 p: K- d, P9 U1 V; `
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:
- d. H) J+ H+ b% {3 N8 r6 N; q d: [, P# N8 e* H, g
php8 r7 V) m* B" n8 Q5 \- @
<?php
* I6 K3 C4 I& W) F& dreturn array(
! n: D& N% W( M 'name' => 'Heropress Pro',9 p9 l2 y8 b& f) E0 ]* t U
'description' => 'Typecho adaptation of Heropress Pro theme',
y! U6 u, {4 i7 S5 a- n! Y; A6 z 'version' => '1.0',
6 `6 |- d' Z1 G, b 'author' =>'Your Name',# b: K; f( }' t$ `( R6 `
);$ J' e: ?9 Y# c
6.配置主题布局文件
* u- |5 C: e* f: r: c( c' w: _7 i" w) k1 R1 z( d" h/ P( ?
在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:
1 ^. n3 K8 @$ M; K- |; Y, L$ R6 Y6 {1 w
php: j# }% P( X+ l* |. ~3 P. J( S* q
<?php while ($this->next()): ?>
# ], j" C. E5 W8 U: x: C- o0 W7 D3 K<div class="post">2 e+ q, u, n: M1 B* E( C* G M
<h2 class="post-title">
+ o4 F+ J0 I8 ^( R& K <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
; R+ Y* U" E1 W, K+ c1 [2 Y9 W9 F& Z </h2>$ c L* B u6 W& P* x3 W) k# a
<div class="post-meta">
9 Q/ [8 h) w9 W$ X; L* R <span><?php $this->date('F j, Y'); ?></span>9 Z2 V* R, ?, w1 c9 u
<?php if($this->tags): ?>' m& f9 l7 s2 i1 l
<span class="post-tags">
6 s; A- k1 N/ T, V8 y, v6 \ <?php $this->tags(', ', true, 'none'); ?>
5 k o- t Q* q y3 [4 {0 F1 O </span>) a1 p* j" b& P- ^1 x
<?php endif; ?>, D8 u2 q3 K! ?+ {2 a p
</div>
0 j- I6 M1 Q9 B" W9 @9 a <div class="post-content">4 X; U' E: n& o0 h2 J! N! Q
<?php $this->content('Read more »'); ?>
" n- d3 k3 R% h% R6 ^0 Z </div>
$ U6 U# z9 q/ u! `1 _& Q</div>
' ^- z. f. |+ I/ s1 X<?php endwhile; ?>1 F0 m9 m0 t, A
7.调用 Typecho 函数
3 R6 ]7 Q9 {: k& F9 x+ l/ H+ t6 P+ i6 [5 K+ ^ r- j7 t! s6 h7 h: J$ Q" U
在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:$ g, X6 Y7 m1 M$ w) q' w- y. J
E( }, `, }: z% `: I) G8 p用 the_title() 替换 get_the_title()。9 v$ f/ T5 Q$ P( X. t0 \
* A! a# q: ]$ F8 a. K1 U4 t用 the_permalink() 替换 get_permalink()。) [; @: l' B1 V; H, e
6 K. `1 t. Q4 O用 $this->date('F j, Y'); 替换 the_time('F j, Y')。 K( @1 R( h' Z7 u9 }8 E
+ f1 _; P* ]. p+ k) e# L/ m
用 $this->content('Read more »'); 替换 the_content('Read more »')。" i8 \5 I2 e8 G% ?3 _+ E
- {2 m+ Z- b) q4 l- Y2 w3 p
8.添加 Typecho 标记
) d' j2 f) A6 x$ O2 `% g I; ?, D3 _- v: F2 O, w+ @5 X) S+ j0 J9 g
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
! q3 J `$ D2 X- N1 V3 {. g: r5 l' H8 I! L8 ^# y1 I' `
php
' A, y5 s5 B! b4 p9 H3 {<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
, ?5 f0 I7 q2 Q+ T- g' B& s<?php $this->need('header.php'); ?>
( M' j/ r: @" ]$ V9 E" s9 D- }* ^<div id="main" class="container">
, d# M7 z7 g; d5 h7 `4 Y. C. F9 J <div id="content" class="row">0 S; s$ q& `4 `
<?php while ($this->next()): ?>, c( z9 x, D& w9 N/ q
<div class="col-md-8 col-md-offset-2">
j* J) \' ^- |$ i' A* L8 b <div class="post">
! {! ~# _, X4 k8 t: { <h2 class="post-title">
2 y) O. V! r7 p <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>& c" a7 ^' M1 ?5 B
</h2>/ w2 _9 R! K& i+ F0 U6 u: Z
<div class="post-meta">, q0 D& z, f, V- h$ y
<span><?php $this->date('F j, Y'); ?></span>! n( B0 j3 f8 I. ^% Y- c$ o P9 e
<?php if($this->tags): ?>( d( G' F# ?( @- _/ S. {9 ]" l6 }
<span class="post-tags">
; _7 |/ T: V q; s. O( l <?php $this->tags(', ', true, 'none'); ?>" { U" l, l% r- b% r
</span>0 k# U' n# v" z) `) t
<?php endif; ?>
! q* ^+ q' A4 T$ G0 P </div>
5 z% z; d: J7 l <div class="post-content">
7 v: o% G: ]' e2 f2 C% a$ U% N7 G <?php $this->content('Read more »'); ?>( S- s. E0 E9 s: W) ?) `6 ~7 `
</div> E* v5 s6 x2 ~0 G( s
</div>7 g/ H9 t* W4 {- {/ l1 c
</div>
& ?+ c. `; ~$ S1 X <?php endwhile; ?>
+ O0 S) p: q, g( E </div>
, t7 r' g; X; X) W& T- |. U7 s/ V</div>6 H- C! w) D& h2 D. c
<?php $this->need('footer.php'); ?>
, ]7 F* }- \/ N& d$ Z5 G9.调整其他可能需要的文件和代码
8 {# R; U. h+ y3 L
. q6 d4 f# H( B1 O根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:: J0 e# i( \5 f, @. v
- ?. U3 q; x8 Dhtml4 o& i5 I4 e8 @8 X3 z
<title><?php $this->archiveTitle(array(. |. F3 @( p) {( U# T- x
'category' => _t('%s'),. r' Q' g! l9 O' N
'search' => _t('Search "%s"'),3 \# O2 y' E& e, r
'tag' => _t('Tag "%s"'),' X8 v, p5 F5 a9 b. x
'author' => _t('Author "%s"'),; w- z. i4 M; N8 M" \3 a4 [9 d
'date' => _t('Archive "%s"'),. ^# }7 J: ~/ s, w* X( a
'default' => ''8 O/ G6 j6 I$ j: E }
), '', ' - '); ?><?php $this->options->title(); ?>
; @0 t* W9 {5 x3 _</title>
* ~8 q6 f' f7 { i3 _9 O. k10.使用主题- T% v& j. X, U9 L
6 q( A7 D9 U7 N0 t5 S登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。
4 R* d0 s& x% |+ j- ~/ f, ^ I
; x* J0 H" i9 f3 i. r$ R5 o0 S# Q以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。* B* Z1 L! l: M
# Y/ P. H- O: D# s; M
|
|