|
|
* l$ o& Q ]) U: {/ N- `可以将 SpeciaTheme 中 Heropress Pro 主题转换成 Typecho 主题,下面是具体的实现过程:0 B- |# w J0 G8 ?
! F5 r3 v! P2 ]2 V. J& }) ~1.下载主题文件
; `6 m7 W3 q, J% p0 f* H# r
# {* N7 m& W4 |5 C在 SpeciaTheme 网站购买 Heropress Pro 主题后,从下载链接中下载主题文件压缩包。: Y4 J- l, U, p/ l1 ` ]1 J
+ Q' Q- r4 n& Z; `' g2.创建 Typecho 主题目录
8 s, {# F& a7 @; M ~" l: z9 D5 S% M) n" x: m- K+ e0 }( C
在 Typecho 根目录下的 usr/themes 目录中新建一个名为 heropress-pro 的文件夹,这将是新的主题目录。! J% G+ E& v' c" _( B% m! n8 X8 _
8 V4 g. x( f. T
3.解压主题文件
, Y$ c# z1 I S/ s/ M* X) \
; b9 }# p5 g- \- t. u* K4 e& b, h% f将下载的 Heropress Pro 主题文件压缩包解压缩,然后复制文件到 heropress-pro 目录中。应该会有以下文件和目录:" {. D ~% M" ?" ~3 n0 m
& t! ?, u6 G2 X( U) R' jassets/* }) x) y o2 R, @. {. M# `3 J9 c
dist/
7 e s# q% D6 q2 N9 Linc/
, y/ |% r: d: e! P& y/ `& V& T" ]node_modules/. G. n2 X$ E* `. d h; y) T
partials/
; |0 ]0 x0 U7 i! _; Etemplates/
K) L' d7 c8 V- [6 Z2 M.babelrc x, n' q& c F% W- o
.eslintrc.js
3 | L/ U9 ?; _1 V' g5 ^gulpfile.js
& x! Q0 c0 X. Cpackage.json( L/ A) k" H' H6 z0 Q- e
webpack.config.js& ?6 B/ ]: p' o! F. P
4.修改主题样式表文件
/ s9 h9 }* n# w4 B$ ^
8 s. o% e$ k4 j6 H修改主题样式表文件 assets/css/style.css,将其中所有图片、字体等路径都指向 Typecho 主题所在的地址。例如:
; q4 _9 r/ s! C) t# M8 E( R
/ G1 o% @# T; t, ucss2 J- T/ q% b3 v+ K0 v: U. [
background-image: url('https://example.com/usr/themes/heropress-pro/assets/images/bg.jpg');
, j% w; a6 F! l' f; w. L9 e" f& p% `修改为:
7 q# T% Y$ `( A3 v3 M# Z8 z% c9 V2 S: i
css" f2 ?3 a/ E& h& d6 K3 x
background-image: url('/usr/themes/heropress-pro/assets/images/bg.jpg');, C- V, l/ V C6 T* \7 F$ g; w
5.创建 Typecho 主题配置文件; V% j8 v* b5 N
@6 |4 z# ~. X6 `+ e
在主题目录中创建一个名为 config.inc.php 的文件,并添加以下代码:- l- P7 e* f3 }& k0 l" ?
6 u7 _4 z( J4 sphp
4 u' \3 F% A+ v7 J( }) k7 T<?php8 H; I7 {; V3 O+ ?8 V6 [5 c* I# r3 {
return array(
1 l$ g" B8 i2 R+ W$ J 'name' => 'Heropress Pro',
% }) a; \2 v3 J! D 'description' => 'Typecho adaptation of Heropress Pro theme',6 D6 R4 d- t) v, K W
'version' => '1.0',
" k% M5 d" p3 O. k 'author' =>'Your Name',
4 A: O8 C- {8 ~5 p# B);& c: A' D+ f- F7 _) L
6.配置主题布局文件
3 j R J5 C4 o L2 Y, ^
: @ Y: R* M. F. u2 |* o0 z在 heropress-pro 目录中创建一个名为 index.php 的文件,并添加以下代码:+ S( k5 x0 \' ^! k$ B* p0 b& C
5 l( u! e* W$ B5 X3 r9 O
php
/ N. o& [- d" V. L<?php while ($this->next()): ?>* D5 M8 v7 H8 C2 }1 Y" f; D8 A1 J/ l6 U
<div class="post">
- V, p( J/ i/ _5 r1 ? <h2 class="post-title">
4 W1 S; r# x: D <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>/ [4 A, d m& v& H- C+ U
</h2>* x1 O' j) d1 }* Z' T+ |: m& \
<div class="post-meta">
, M' t8 x$ x5 v% u4 ^. W( L <span><?php $this->date('F j, Y'); ?></span>
" }, p9 G9 O! f% G7 l# J <?php if($this->tags): ?>
4 |% ?* _2 |9 Y$ \ <span class="post-tags">
; h- `2 M3 d8 e; R8 a' p D3 [2 ? <?php $this->tags(', ', true, 'none'); ?>7 o( p- E9 ^& L3 }) c5 y
</span>
$ u* d3 q* t/ ~9 \, T4 K <?php endif; ?>
" e8 M; i; {6 A" { </div>
! p, v7 l1 Z! V3 h <div class="post-content">( O2 l; q; L9 r: r: J
<?php $this->content('Read more »'); ?># Y* `) P% [6 v6 q! V
</div>
% w1 q% s. r8 C: G5 E</div>
* f9 y5 y$ F7 |: T2 Z2 V<?php endwhile; ?>
. O- a* [ u* _7.调用 Typecho 函数
, u/ ^; C+ S+ {
) U, {/ Y+ ?2 T& @' j3 K在 index.php 文件中,将需要显示文章的地方改为 Typecho 的函数。例如:7 R; `5 q; }5 i V% T! o* J
' f9 h9 W0 ]: ~5 a( j* _2 |用 the_title() 替换 get_the_title()。
6 h. W( d# w, E1 H. f9 V5 @1 ?' _" H/ c1 q# J
用 the_permalink() 替换 get_permalink()。
2 @0 z6 O( R( m
2 @( w# }1 T) P# Q+ W用 $this->date('F j, Y'); 替换 the_time('F j, Y')。& u' y/ `+ o6 k. B" x1 `( b: Q
/ e# ]$ }) |0 O- F* `5 }
用 $this->content('Read more »'); 替换 the_content('Read more »')。% u$ F- X+ }- e, X* [9 P
( l/ A# x6 q) `* {# |8.添加 Typecho 标记4 S2 F$ d. V }( g- Q7 ]+ o: ~1 L
+ y6 z) E( B% f4 N, ]1 G2 \
在 index.php 文件中,添加 Typecho 的头部和页面循环,以及必要的 js 和 css 文件:
9 A) _- t, I0 ?4 ?$ I; G
: A+ K) {) \$ M/ l* aphp1 L: t! |/ o# \; h4 [
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
$ Q2 c# g/ S1 r! e<?php $this->need('header.php'); ?>6 D5 `3 L" M# o7 u3 u
<div id="main" class="container">
. v& T- ^3 M1 g! ~% D( r4 J <div id="content" class="row">
/ N+ @) }5 o+ @& E; L2 t3 x <?php while ($this->next()): ?>* I8 }+ h; u2 K( {
<div class="col-md-8 col-md-offset-2"> I% W8 Q- s5 H& Q9 T: I! f3 P0 Z W* N; D
<div class="post">
8 [! ^; L+ o! b* h9 o* c <h2 class="post-title">
7 h. V1 T9 Q( V" C2 a: K <a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
/ L2 d( w/ P2 N" H </h2>
' l3 y T) L2 Q U9 I) B <div class="post-meta">
8 k& r4 M* R$ u8 A4 k <span><?php $this->date('F j, Y'); ?></span>
3 f( e1 ]6 y+ ^" ] <?php if($this->tags): ?>
$ _5 s# [) u' `0 C2 I7 Q7 o" C2 F <span class="post-tags">
# H$ M4 f* Y. \ <?php $this->tags(', ', true, 'none'); ?>$ |% L6 j% ^( c
</span>7 O9 W) b, E+ ^0 n8 s1 G) b
<?php endif; ?>4 i" l: r) q, R& k7 e9 Y$ q0 i
</div>& }. s) X* K2 K) d
<div class="post-content"># U/ V6 [8 S/ Q& ]6 w2 k8 X `/ q4 u
<?php $this->content('Read more »'); ?>
$ K! m3 ~; z# M; _+ } </div>
. ^4 D3 i1 v7 _8 i+ \ f </div>3 s3 i P4 n \" w( ~8 k
</div>7 H# n# H0 o) V" ]' d
<?php endwhile; ?>
3 ]5 v, A( p+ H) } </div>
) w! q# o* V" {2 H</div>: _" ^$ A/ M% w: @9 w2 [4 J
<?php $this->need('footer.php'); ?>
1 `4 i ]* t2 U9 B4 I7 N9.调整其他可能需要的文件和代码
8 Z0 `3 w0 n: a- o* v" d
! a. }; F7 c8 h根据 Typecho 的特点,需要调整主题中的一些文件和代码。例如,需要将 header.php 中的 <title> 标签改为:, L, R" E/ v% v+ ?% K( U/ Y1 |
# U7 d0 F- b" j/ ] `
html( [& r8 [2 N' ^
<title><?php $this->archiveTitle(array($ x/ o3 B1 V0 H5 _4 @ f
'category' => _t('%s'),
, R, q- a8 L" V 'search' => _t('Search "%s"'),
% {& N4 h4 e4 V* t( R' T% _ 'tag' => _t('Tag "%s"'),
# E: ^3 D( ^+ H 'author' => _t('Author "%s"'),
6 k2 W0 j5 y8 e( ?- } 'date' => _t('Archive "%s"'),
% \( p8 r9 Y3 k, V0 w 'default' => ''
1 d& q, B( I$ E1 K8 d1 G: p ), '', ' - '); ?><?php $this->options->title(); ?>
. L8 h+ _$ v# W/ a! H6 i0 G1 m( \$ Q</title>% }7 ~# M# W3 \1 ^' |' y
10.使用主题- C9 U) {7 M! w" T1 O
7 ]6 r3 N8 S S& i% i; ?登录 Typecho 管理页面,选择外观,找到 Heropress Pro 主题,并选择该主题即可。* L8 @, q. y+ u+ g3 l# P
% @" q- E! r$ e* Q
以上就是将 Heropress Pro 主题转换成 Typecho 主题的具体过程,希望对你有所帮助。
7 B# i. m8 i3 V% }& Y2 g& ^% l% ]" ^+ l7 x; x
|
|