过期域名预定抢注

 找回密碼
 免费注册

問個問題,wp裡面如果一個category裡面沒有post...高手幫忙。

[複製鏈接]
發表於 2013-11-2 14:16:17 | 顯示全部樓層 |閱讀模式
本帖最後由 非常小黑 於 2013-11-2 14:19 編輯 0 X' C# J+ V# F

2 ?5 s+ f# _6 ^) U" f% W/ I* |, I如果一個目錄對應的沒有post,那麼就變成404頁面,代碼如下:
  1. <?php if ( have_posts() ) : ?>& {, S8 z; V% O( f  {, }
  2. ......5 F5 k+ ]/ _3 u- s+ t
  3. <?php else : ?>2 o, b5 n) ?7 h; |* j1 W  n
  4. <?php get_template_part( 'content', 'none' ); ?>6 B7 Q5 q  J$ ?% g1 o! c2 F
  5. <?php endif; ?>( P9 }/ B4 G' {
複製代碼
但是我不想變成404頁面,我想變成一個自定義的頁面
7 [' |  x" C& S+ i& l我把<?php get_template_part('content','none');?>部分,無論改成什麼,都沒用,他依然還是顯示404頁面。
/ t2 Z  ~, D! H" I4 G; {' ~, T. e* k+ F
誰能告訴我怎麼做?4 L7 J1 k7 T; a2 u& q+ a

' `! {  D$ t. e( F2 R# w0 q5 n- N; i- S
+ c3 X) G4 a6 y; u+ i; `! q

4 M! E2 |/ q' D6 f6 G$ u  B. `* }7 ^- B! ], T& u  k1 C6 r

- D; F; _" J" b" M* U  K' _3 W2 \- W' T" S+ C8 @5 \( ]

5 E3 V9 n& m0 X" f
* N8 ~, Y1 m: \( T, j/ ]+ U
發表於 2013-11-2 18:20:36 | 顯示全部樓層
我好像記得某些模板有自定義404頁面的功能,但實在是記不清了。
/ ]1 E: V6 C5 G' y8 j$ I, B. E
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-2 19:28:36 | 顯示全部樓層
這個就奇怪了, 我用的是默認主題, % z. D5 l6 e" R/ h8 a( |, C3 ], Y- {
修改category.php的
. T. w" A  o& f/ M% ~將<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category
6 o9 L8 D+ [. Z
$ W6 M1 e6 Q( |6 k- |content-empty-category.php正常加載了...! y/ U7 R7 [0 z

3 B' }- q& _& Z& X( b% o沒法reproduce你的問題, 愛莫能助 # N+ a: R, q5 t, {/ ?4 V9 w4 B
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-2 21:49:43 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28
) a  P" o2 u- V( g這個就奇怪了, 我用的是默認主題, 5 p& W, ], ~9 H- k9 D
修改category.php的
; l9 k9 L: _, K2 K' y. g# m將的none改成empty-category

, R: R9 }5 O' @9 ]" H! a# J版主大人,你是wordpress 幾?8 A* O0 r: L/ r1 t
是2012主題嗎?
' l4 }& P/ W/ L( S; u- h0 {, M. F- ^# t7 D% R& G. F7 K3 ~
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 03:10:23 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28 : e+ k' i+ g; m$ m( G7 N) F
這個就奇怪了, 我用的是默認主題, , y- Q) f  `: V+ a" s, N
修改category.php的
" X2 [: r  h3 F0 C2 X將的none改成empty-category

$ [0 _2 O! s! I) h  Z0 }對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php
6 V% R- }: _* x+ c# P) ]: G& @9 L/ W- I% a
這種情況下,我無論怎麼修改,他都是404頁面。. p% i- ]3 J2 @2 z$ V, C1 K& V  E

/ W' a, x2 P5 _  {3 w( O
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 07:45:32 | 顯示全部樓層
非常小黑 發表於 2013-11-3 03:10
. I4 M/ D# T- y3 C) F7 K. a5 v: h對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了
" H6 [0 ?! w, ?6 O9 a% r1 e
7 q, p9 a; n7 q* Q2 O0 ?這種 ...

& R# e" J3 W5 ], m: n你說的404應該不是content-none.php? , Y9 E! Z0 T; ?( T

/ S  {0 S  y7 B# z而是404.php吧?
. M& @( b1 C" i) t+ C# N3 P9 P% ^: ~2 N7 c( s, J- z, F6 _6 w
再加上no-category, 我覺得應該是wp把www.xxx.com/xxx.php當成文章處理了.6 p6 F* ^) O+ P+ q
: @1 w7 D7 A; x1 V  d3 {3 N) V
用的是http://wordpress.org/plugins/wp-no-category-base/ 這個插件嗎? - ^; ^3 `8 A/ y: M/ o8 O( O6 ?1 G

, K) O. A7 g4 W! q* B: q! {你給我說下插件,我才好幫你
5 o! b/ u" N5 E; i$ ?2 a& ]6 a1 D! ?5 [9 J
: j  q; P; A3 W! r" g1 A' V4 i
. N* F5 F, w0 D3 `* L& a
6 w2 t) m6 l3 Q  C2 N
+ J- V7 \" ^1 ^- y2 b& ~/ t. x
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 11:29:18 | 顯示全部樓層
本帖最後由 非常小黑 於 2013-11-3 11:31 編輯
; k! ~0 e$ J9 `* A
luguokankan 發表於 2013-11-3 07:45 5 q; a3 j5 f9 c) A
你說的404應該不是content-none.php?
( a" ?, _" A% h& W7 O; t% N& U+ r$ e# Y2 Q/ D. {
而是404.php吧?

% ]. ]9 n# B+ R! T/ V6 ?用的seo-ultimate這個插件
* L; A# o% |) y# A4 l/ b+ ^他裡面有去除category這個功能。
% E$ \0 b6 f3 ]: [2 u, s
& b* J0 n. j' U: o是的,我無論如何修改elseif後面這段,他都顯示404
2 b7 Q+ h) n! B3 K3 d2 [7 y/ i; z! a# z" L# e4 w" a4 E; a
然後我去class-wp.php裡面修改function handle_404()
) M# a: T4 F) Z2 Z3 Q$ X+ d0 z去除is_category()部分,也沒用。% B' ~! i# B% X( Y% t6 V

1 q% J$ y9 u  j& H/ Q- ~+ y3 O* `我懷疑,是不是wp把重寫了category目錄以後,就認為不是is_category了?
+ K9 ~6 O& K0 Q  a
( G+ B6 x' }+ A  v/ i+ V$ Q. p6 z" O' S' @5 {8 f3 G! [+ X
: {! k0 b0 q2 w, v* `
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 12:33:30 | 顯示全部樓層
本帖最後由 luguokankan 於 2013-11-3 12:36 編輯 8 I, _! ]3 ^( J+ R/ \8 G6 D  u
非常小黑 發表於 2013-11-3 11:29
% @5 E0 C  A, e, @用的seo-ultimate這個插件/ [) j+ g7 a6 K) u8 \
他裡面有去除category這個功能。
9 `" Y) _. ?( ^) I7 {
/seo-ultimate/modules/permalinks/permalinks.php
; U2 R/ e0 f- M8 t$ A2 G9 I1 ~4 T7 B
* b8 d; F! i7 Z' K6 m$terms = get_terms($tax_name);5 s% [" V8 R, T/ z$ f
# ?! u8 F, w- y
改成8 q+ ~, g4 C8 E6 s( K7 E: f( y

$ @3 A4 a7 _+ g, V7 O" F4 q$terms = get_terms($tax_name,'hide_empty=0');& R( r4 Z3 J; y) D7 D2 B. e+ a

& K* n* u7 g, _+ `9 f6 m/ B. ~* p9 X要是再出現404, 請到Permalink Settings那裡按幾下"Save Changes".
2 }1 g- p6 A4 p. }
" ^/ A* Y% G' j4 k; U# }然後,你就可以修改主題的elseif了.8 K4 {) q2 w% K( W

# f" ?" x( l2 w$ m! l( y* U* y: t. w$ |. z$ E* }
---. W1 z% i! i* Y
原因,我稍微解釋下.  # |( H) a' R8 `
6 n, U! }: x9 @* {; e" o1 s8 f
wp會將居於permalink setting而生成的rewrite rules保存在數據庫.
0 k. I' H$ X+ ~
- r7 h6 A5 b$ k: q' w$ |: T' l當你訪問一個鏈接的時候, wp會跟這些rewrite rules對比,找出匹配的頁面返回給你.- s' W8 l6 I4 Q/ G8 L' S
; G- H9 I5 m" D8 @7 w/ y4 N
你這個插件的問題是,他只生成post不為空的category的rewrite rules.+ Y# w/ ]$ v3 \1 [( I3 e

3 ?) l1 l- T/ m5 O4 E所以你訪問沒文章的category就404了......... 找不到匹配的頁面. 2 h1 f4 j+ `! k1 }

( Y: ~* z4 ~& V3 y% X---7 w2 C" F9 _1 B
由於這些rewrite rules是存在數據庫裡的, 你要是修改插件的話, 這些rewrite rules不會立即生效.
- |6 {# W' p. Y& [# s' W. ]2 j" p6 x( T6 f
Permalink Settings的"Save Changes"按鈕能刷新這些rewrite rules
! _+ ^5 b2 ]% W& ?
4 n4 t" N& k( }4 n$ C" C3 x+ Z% H  k

評分

參與人數 1點點 +4 收起 理由
非常小黑 + 4 楼主好牛

查看全部評分

回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 16:45:22 | 顯示全部樓層
luguokankan 發表於 2013-11-3 12:33
& l- u3 C3 B1 i4 m( g$ h/seo-ultimate/modules/permalinks/permalinks.php
  @1 Y, S( S: U! H1 u1 ~2 d, v4 [& a  f6 i1 B  O
$terms = get_terms($tax_name);

4 e) {8 P9 a6 ^7 T/ x, J7 G果然如此啊。。。哥你太棒了。。。
) a* E6 w; {; `5 i5 i佩服佩服。8 G! `  Q% G3 ?+ K0 O- x

4 Z; ?7 d: b& A& {

點評

搞技术的太苦逼了.. 大哥有啥好路子,带下小弟哦  發表於 2013-11-3 19:36
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

點基跨境 數位編輯創業論壇

GMT+8, 2025-5-26 08:37

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表