过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2013-11-2 14:16:17 | 顯示全部樓層 |閱讀模式
本帖最後由 非常小黑 於 2013-11-2 14:19 編輯 - V/ {) o( e. _
3 t' K" K  x' n  ^$ r# x* G" H
如果一個目錄對應的沒有post,那麼就變成404頁面,代碼如下:
  1. <?php if ( have_posts() ) : ?>
    7 D# }  f; o; q6 Z2 u
  2. ......
    ; d- S  U0 |: u1 u
  3. <?php else : ?>
      P! S5 _6 p$ o! b  p  R
  4. <?php get_template_part( 'content', 'none' ); ?>
    , w8 _% C6 F4 m- F
  5. <?php endif; ?>- @, s( |( n0 f# d2 o+ X
複製代碼
但是我不想變成404頁面,我想變成一個自定義的頁面9 r, Q" W; K9 s* j: q& r# G2 M$ s
我把<?php get_template_part('content','none');?>部分,無論改成什麼,都沒用,他依然還是顯示404頁面。, a) r9 ]/ j7 c2 r5 N/ C9 Z

- A8 c6 q( V+ ?6 F4 T" ^誰能告訴我怎麼做?
- R" K9 z# e; R1 {# A9 B# M# c0 B0 D3 B0 h4 {0 h( M0 U) G

" M7 o4 j8 [6 |8 k1 \( f" C& v6 [
  z" S; h& z8 B5 O- |/ {$ }% k; Q
' ~8 V1 S9 v8 E' w1 l0 P/ a9 [1 j$ N9 j+ U! M! a
1 ]. ~; h2 O& u
0 q1 _9 p) H2 B
) ]2 V& f" s% g: R! j# [

) z' j) Y/ p4 S  A! `) q
發表於 2013-11-2 18:20:36 | 顯示全部樓層
我好像記得某些模板有自定義404頁面的功能,但實在是記不清了。
8 ?# e- f9 O3 y5 q9 ^7 k: H
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-2 19:28:36 | 顯示全部樓層
這個就奇怪了, 我用的是默認主題,
/ u2 v2 `9 X& ]4 r修改category.php的9 r9 r2 `3 x. C! W( J5 n. U+ X1 `
將<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category7 B% I+ e$ W/ L$ v
+ j: }4 X. P( x- \8 `+ H
content-empty-category.php正常加載了...
# o8 \$ C! s  N4 j5 B# X: q+ s# j) G9 r9 n. P
沒法reproduce你的問題, 愛莫能助
7 e5 p2 |2 J+ C
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-2 21:49:43 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28
, j8 X- E2 s4 c1 s7 ]+ p0 H這個就奇怪了, 我用的是默認主題,
' F4 J" g8 U% I( A5 j+ R修改category.php的
0 B$ Z& t( E% K. e將的none改成empty-category
; W2 |0 [8 K4 r, r5 _6 A/ f
版主大人,你是wordpress 幾?5 \" I8 @+ A! w7 L1 H7 R) n& b
是2012主題嗎?
! l' D& v# o+ Y+ h1 ^) U! ]! I. Y: a3 y  Q: d) |7 _) e
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 03:10:23 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28 + f* B* Y' y$ h" t. b
這個就奇怪了, 我用的是默認主題,
) ?, R  E$ A- I2 \& A修改category.php的+ Q% U. |3 c7 a( Q3 X4 j  e
將的none改成empty-category
. y" w: P5 ^# I& E) ~  Z
對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php
- @6 B4 `8 }8 A5 ?
9 r3 g7 ~+ U) n5 O6 l這種情況下,我無論怎麼修改,他都是404頁面。  h% |, Y/ \6 \0 f8 r
. G+ c$ L( ]" z8 _0 N1 l; g
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 07:45:32 | 顯示全部樓層
非常小黑 發表於 2013-11-3 03:10 8 u/ f' B4 d$ A2 o4 j* h9 K
對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了
6 M3 z' _' P) a+ ^  m5 O2 p/ ^* _* f3 f2 v6 |( V+ O! E, C
這種 ...
6 _# f/ p; X. T8 U! Z: O* b/ L
你說的404應該不是content-none.php? ( O; R: k2 _9 [2 b

! K2 U. w0 v, j0 Z" D6 {4 Y而是404.php吧?
# N" ?5 H! g5 L7 }3 f7 ]* _( _7 P9 ^
再加上no-category, 我覺得應該是wp把www.xxx.com/xxx.php當成文章處理了.4 `" _- o% A; V" c! p) i. f/ R1 S, L

9 j5 a! x6 d3 D6 o* T0 o: _用的是http://wordpress.org/plugins/wp-no-category-base/ 這個插件嗎?
0 k) ~( i# g7 k: i5 Y( o8 Z. B% m' g+ x
你給我說下插件,我才好幫你) p3 n) P) N( Q
/ c7 T* B2 h( B( H  j
9 V# a5 ^% Z  Z
% G/ _0 G( m7 p3 {4 ]
6 N3 J2 n6 b3 t$ ~* j4 v

. G/ B% X: M% N1 U: @$ [$ L' W
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 11:29:18 | 顯示全部樓層
本帖最後由 非常小黑 於 2013-11-3 11:31 編輯
* t: J/ e" R) y# F
luguokankan 發表於 2013-11-3 07:45
3 r# a( @* I4 L+ E0 A6 _' M4 Y: A你說的404應該不是content-none.php? ( X  x8 N% o( N+ a  i
/ I9 M' b) |' M
而是404.php吧?

- r5 T0 \2 R1 F& n用的seo-ultimate這個插件6 X- I: T% r5 L. `; k4 h
他裡面有去除category這個功能。$ i& W- V2 k! M' s8 C! @3 h

4 c' g* O- U5 g( o* m+ W& d% @是的,我無論如何修改elseif後面這段,他都顯示404! D0 `' M. ]8 g* m
' }5 ~* B) \4 J
然後我去class-wp.php裡面修改function handle_404()
9 u" i# u& z, M  ^' g$ Y去除is_category()部分,也沒用。
( O- j4 x. f2 v/ y% ~. C+ C% f$ e1 v$ p
我懷疑,是不是wp把重寫了category目錄以後,就認為不是is_category了?
% d3 u: u- p6 L3 I, d9 M5 ~5 }! i6 N$ B
9 s. u. U5 C6 `! [  x

1 f6 c7 d# X  a* q2 Q# |! M
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 12:33:30 | 顯示全部樓層
本帖最後由 luguokankan 於 2013-11-3 12:36 編輯 + y. l% Y$ k+ ^, Y
非常小黑 發表於 2013-11-3 11:29
8 s8 F# {. G; M用的seo-ultimate這個插件, a4 a# E) u. L
他裡面有去除category這個功能。
1 B  }+ ~4 _8 g4 Z! g* {( c
/seo-ultimate/modules/permalinks/permalinks.php
1 K1 `; z: h" h- t6 b$ |& t- h
* M5 \5 O. [9 Q6 [4 o9 V$terms = get_terms($tax_name);
* j. b  I6 W1 t9 W. q$ M4 [( y
) u& n' ~3 S- [! r3 K4 M改成
0 ~: W1 G9 P7 p: P
) K' I/ c0 x. ?$ ]$terms = get_terms($tax_name,'hide_empty=0');
) t& r4 w) i) Z$ s8 @. o. F% E+ @9 u5 ?3 D4 }# z
要是再出現404, 請到Permalink Settings那裡按幾下"Save Changes".& b3 K6 Y" ~! K% ~* G$ d

4 }( d% U1 r; a/ S然後,你就可以修改主題的elseif了.9 Q+ e, k8 \3 i1 j# E  M9 [/ Y( `; g
9 m; h4 A. L9 e

: K) ~. U; R( V; c! }% C' I0 g---
+ o6 ]( @7 T! P8 K/ S! e1 e原因,我稍微解釋下.  . L4 B6 j3 n6 A% W5 j) s
5 X+ }9 b; `! U/ Z5 _% h8 O2 E
wp會將居於permalink setting而生成的rewrite rules保存在數據庫.7 s4 Q7 G% g- _/ Q' f% y1 W

% k' K+ K  ?# n6 t- R當你訪問一個鏈接的時候, wp會跟這些rewrite rules對比,找出匹配的頁面返回給你.& T% d. ?0 C+ ?9 C
) h0 R3 E( w; g- o
你這個插件的問題是,他只生成post不為空的category的rewrite rules.* f+ c2 ^5 u. G) W2 `& ]+ v7 x

! P/ x+ \' G; I1 D) S8 y' w; K所以你訪問沒文章的category就404了......... 找不到匹配的頁面. ' X% u; I3 ]: F: \3 _7 @" q. n

  j5 o2 U- ~/ j! S; g& @---/ j/ u. l% W; w! ]( r$ Z- U% ?
由於這些rewrite rules是存在數據庫裡的, 你要是修改插件的話, 這些rewrite rules不會立即生效./ N% h+ R  w/ w3 N

) A. l' I, P& A. `6 Z' EPermalink Settings的"Save Changes"按鈕能刷新這些rewrite rules" F+ ]$ H$ s) n
, K) f: z3 {  H' z

) T* P# N2 ]! p' J$ x  t

評分

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

查看全部評分

回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 16:45:22 | 顯示全部樓層
luguokankan 發表於 2013-11-3 12:33
' T. b- r; T- I/seo-ultimate/modules/permalinks/permalinks.php+ ]4 e% A" y! c. v! `
; }( f/ E$ S& t/ r3 [' ~3 R
$terms = get_terms($tax_name);

1 M2 ~8 m/ @! ]# V) [) y) N果然如此啊。。。哥你太棒了。。。
0 I5 l$ ]9 ~2 y, j3 O佩服佩服。
; C0 [( D" S7 f: n
# O+ l/ Y/ D' p, q8 k

點評

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

使用道具 舉報

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

本版積分規則

过期高净值品牌域名预定抢注

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

GMT+8, 2025-7-19 06:39

By DZ X3.5

小黑屋

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