过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2013-11-2 14:16:17 | 顯示全部樓層 |閱讀模式
本帖最後由 非常小黑 於 2013-11-2 14:19 編輯 , Q+ T. ]* u" o& }' j
! @( x5 [4 \- c. q
如果一個目錄對應的沒有post,那麼就變成404頁面,代碼如下:
  1. <?php if ( have_posts() ) : ?>; v/ G& j) H' ]7 X4 x0 B% _! q7 I% t7 e
  2. ......* u& X' U  p$ D; J( E
  3. <?php else : ?>: i$ r1 R) ]! t( W( Z
  4. <?php get_template_part( 'content', 'none' ); ?>  r- a3 h& o+ x6 `3 d; {
  5. <?php endif; ?>
    " ?$ K1 V& r& M8 u# q: _5 ?
複製代碼
但是我不想變成404頁面,我想變成一個自定義的頁面
& _# @. t6 r7 v5 Z* J我把<?php get_template_part('content','none');?>部分,無論改成什麼,都沒用,他依然還是顯示404頁面。0 m4 X- c: n3 B) |8 B$ K  x
' o3 v9 }& [9 y  m
誰能告訴我怎麼做?1 n: C9 q$ z* I% n+ a, A+ M

$ X1 |" @2 ^, ^# G- w& x: `
7 {) a8 k7 s8 m4 J* G$ _5 c3 z3 t& s6 x. }. t- F8 N7 D! y

! ]5 F7 O) M* B7 b9 S( `( ~+ V2 _$ C% R" n8 y2 ~# y
' k8 C1 c# t- u4 H

" R7 p- [7 a/ {9 j1 w+ a
! ~2 j. J6 P5 D$ ^' Z( B+ f3 A
/ ?6 N" ?5 D& a! b0 Y7 {/ S4 y
發表於 2013-11-2 18:20:36 | 顯示全部樓層
我好像記得某些模板有自定義404頁面的功能,但實在是記不清了。2 \9 u7 f5 ~5 |
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-2 19:28:36 | 顯示全部樓層
這個就奇怪了, 我用的是默認主題, , E2 `% P. M2 ^# j+ ]
修改category.php的
, B7 o, Q1 |' c/ W( p' A% |, f. i將<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category# D/ \2 g8 }/ h
8 h; Q0 r$ J: `' ?/ z% `
content-empty-category.php正常加載了...
% h2 m( L8 c5 c3 N  O7 H! S) A5 J4 `% s9 Y
沒法reproduce你的問題, 愛莫能助
, v. J" ^+ E7 w, i8 k
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-2 21:49:43 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28
" a2 S7 d# d* q* Q6 [4 l這個就奇怪了, 我用的是默認主題,
  q0 y' F( |" f4 H修改category.php的6 v# r, |! t/ j! z' k
將的none改成empty-category

1 z) N5 c* S% F4 ?/ d2 V4 M版主大人,你是wordpress 幾?
7 D* ]; y- U3 K9 ^* p+ I是2012主題嗎?
3 q% _! |1 _$ f0 Q$ E3 a$ f1 ~0 e
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 03:10:23 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28
7 t/ M& J* E2 V1 r. W- N+ m% ~這個就奇怪了, 我用的是默認主題, . P1 w2 O! e9 H& C' a! M
修改category.php的# ~8 ?  m4 H9 f1 U  z* \6 ^
將的none改成empty-category

0 r% k6 T8 W  w- p' X對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php
5 u5 `+ H9 X) r" y* O& |' z7 V6 ?6 c$ H
這種情況下,我無論怎麼修改,他都是404頁面。
% ^: z8 G4 T0 c' |0 J# w0 u/ n. H7 _( H$ H7 ], t* E: V
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 07:45:32 | 顯示全部樓層
非常小黑 發表於 2013-11-3 03:10
8 o$ O3 y  @+ J, d對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了' h, t# J* P- a( Q* f+ @- D

5 U2 \6 r" K7 W4 C. v. V  b+ P- L% c這種 ...
: M' c, L4 Z$ }3 L
你說的404應該不是content-none.php?
2 g$ P% X, H- f9 n7 p9 \4 G2 M( @0 X" G& Y0 a' B
而是404.php吧?
1 t& I- a6 S% K. L4 k$ c1 ^
5 r8 h! B3 \  b# Y再加上no-category, 我覺得應該是wp把www.xxx.com/xxx.php當成文章處理了.
' m5 b/ C; h7 f
2 d( k0 M0 f" K2 Y/ ?& L用的是http://wordpress.org/plugins/wp-no-category-base/ 這個插件嗎? 1 i* g5 B) e, a5 K/ u: j7 k* T  d
+ ^- t6 B# q$ [1 N3 f7 X2 x$ A# F
你給我說下插件,我才好幫你" L1 Q' L4 G- P- m4 c

/ d. S/ L* T" U* X; ~: e( O* f( g% w0 W4 F( |
/ m3 O6 Y9 z0 A9 {/ n, J! g- g" u& G- B
( |7 P% x. A$ k/ O2 D, w8 K
6 L& Z7 c9 v7 _7 N7 E% O  r! o- h
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 11:29:18 | 顯示全部樓層
本帖最後由 非常小黑 於 2013-11-3 11:31 編輯 $ [/ e' P, m( g
luguokankan 發表於 2013-11-3 07:45 * [- Y; v" N. ]! f
你說的404應該不是content-none.php?
" r7 Y6 H- S8 M; l2 i2 D7 f$ I& t& o# T0 p3 Z
而是404.php吧?

- z* A: ]# m; \; R5 K& A用的seo-ultimate這個插件( p" E% C, x4 g8 _8 N  f
他裡面有去除category這個功能。. J( P! o% G: v& ]  O: x

: n, l* M1 X: S& V  f$ {是的,我無論如何修改elseif後面這段,他都顯示404
9 p- Z4 X$ D6 u3 m& Z8 B, B/ S- s% U4 l8 H2 E3 r6 \7 c6 e- T" _
然後我去class-wp.php裡面修改function handle_404()   b2 Z7 J8 ?) a$ r! \
去除is_category()部分,也沒用。( a9 ?/ h$ K) i6 q6 O" Y

0 b; y* t; X* M. @6 G我懷疑,是不是wp把重寫了category目錄以後,就認為不是is_category了?
: o6 r, M0 D+ P9 ?
1 }) {8 Z5 _5 ~8 U( \0 O
! I5 E3 w9 j# S% E0 ?( i' e6 G, N4 x7 M/ t! z* F/ @
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 12:33:30 | 顯示全部樓層
本帖最後由 luguokankan 於 2013-11-3 12:36 編輯 / @+ M6 O5 ^3 k& ~: ?  _
非常小黑 發表於 2013-11-3 11:29
. h5 _" Y* V1 e2 W4 _用的seo-ultimate這個插件
3 B2 p& W& N6 r- l9 p" ^他裡面有去除category這個功能。

  y7 e2 f' A# G/seo-ultimate/modules/permalinks/permalinks.php2 a  A$ z% d& F

/ j- s4 I! s, O0 d  t4 b( z$terms = get_terms($tax_name);
: l) i1 q4 j* N3 t; M  _( K# H( s. P+ {/ r% [
改成( ]! X6 K: n7 {2 `: I' s+ ~
  r$ e5 W4 E' V
$terms = get_terms($tax_name,'hide_empty=0');
2 L+ H3 a1 G' u. r6 k
+ c2 N8 ~# a1 a# {9 \! }$ K要是再出現404, 請到Permalink Settings那裡按幾下"Save Changes".& u% I9 V$ r; n& j; `& h
' |7 k$ E7 o7 X( S& K  G4 s2 ^
然後,你就可以修改主題的elseif了.- F- b1 p# ~. _$ z' i; _
9 b3 A- X" |" }2 C5 C

8 s% D" a9 k1 k---  U3 a* C) j# o' {
原因,我稍微解釋下.  6 K% G. o! \, n! B$ N( N
8 P: V% @5 T& x2 }" B9 I5 y, C
wp會將居於permalink setting而生成的rewrite rules保存在數據庫.
+ I$ i3 j) W4 y; ]# T. E7 r4 M) s6 [7 O1 Q$ c0 |- J9 p
當你訪問一個鏈接的時候, wp會跟這些rewrite rules對比,找出匹配的頁面返回給你.; G$ `  M/ ^8 H5 Z
9 \' ]1 [  Y8 D2 M
你這個插件的問題是,他只生成post不為空的category的rewrite rules.; I7 [, ?- v: N$ g- r
! I7 _5 z/ q3 A, Y
所以你訪問沒文章的category就404了......... 找不到匹配的頁面. 0 m; C. L" {8 q. H5 T( j

& I! W! Y0 [* V8 X3 C---' j: A$ N9 H1 d9 Z8 v* |8 Z' Z" _
由於這些rewrite rules是存在數據庫裡的, 你要是修改插件的話, 這些rewrite rules不會立即生效.
7 h% E9 Z" o) @
. j# Q* a) J- yPermalink Settings的"Save Changes"按鈕能刷新這些rewrite rules1 Y& l# s% R* C  n: F
% F8 W' {. e* c- b* }

( p- B- x8 p# _& k2 R1 H: D

評分

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

查看全部評分

回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 16:45:22 | 顯示全部樓層
luguokankan 發表於 2013-11-3 12:33
3 L, T5 X- Q$ j8 Q1 i/seo-ultimate/modules/permalinks/permalinks.php' ~. l$ h6 ^4 n) L* ~
1 Y( z% E4 B! E) {
$terms = get_terms($tax_name);
& I7 W& j9 C- X# j$ E
果然如此啊。。。哥你太棒了。。。8 `% e8 P$ s( J
佩服佩服。
3 h, [6 a& l& X  T
/ w. i" o9 O; \3 S" q

點評

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

使用道具 舉報

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

本版積分規則

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

GMT+8, 2025-2-17 17:06

By DZ X3.5

小黑屋

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