过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2013-11-2 14:16:17 | 顯示全部樓層 |閱讀模式
本帖最後由 非常小黑 於 2013-11-2 14:19 編輯
0 I8 j: G" D+ X  Y$ g5 S8 U! K. N. s8 S
1 y, L/ F/ U+ e8 ?! O& R如果一個目錄對應的沒有post,那麼就變成404頁面,代碼如下:
  1. <?php if ( have_posts() ) : ?>6 [$ |. M/ {' N4 X( W0 t
  2. ......
    / p( j! j/ s8 S. e
  3. <?php else : ?>
    8 I1 }' m4 p+ x0 i8 l
  4. <?php get_template_part( 'content', 'none' ); ?>9 N5 ^( r  z. w6 @
  5. <?php endif; ?>
    & c) Q% O8 n. f8 [% i: o; v$ Q: ~0 A" F
複製代碼
但是我不想變成404頁面,我想變成一個自定義的頁面9 w8 s# h/ A5 h. ]' ^3 Y
我把<?php get_template_part('content','none');?>部分,無論改成什麼,都沒用,他依然還是顯示404頁面。. Q- f) o& L: B! b0 C9 s8 w9 u9 b
+ ?: r% M& t- s( x$ K3 s- C9 Z
誰能告訴我怎麼做?
; o- L1 m& B0 O( n' ]4 |2 `- Z% g* [" _
  f4 H0 m4 Y0 W) ?0 p
6 _8 x2 j- D- X+ \! M3 S

  L) t  n; [7 H5 J9 y# ?1 R! r9 y, a% }( _1 g
' E0 K6 d8 D- f( |' U5 E3 {
% o/ G% Q: D- y% e. m4 B1 j
1 ^2 G1 p7 h' d5 G' M% ]* P
5 c; z4 i- F5 m2 T! E8 P4 y
發表於 2013-11-2 18:20:36 | 顯示全部樓層
我好像記得某些模板有自定義404頁面的功能,但實在是記不清了。
3 L. ?. s. S7 O7 b3 L" ^
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-2 19:28:36 | 顯示全部樓層
這個就奇怪了, 我用的是默認主題, ' h% L* a% u$ p( X1 m( d) G) }
修改category.php的7 [3 i4 o- b6 J0 w3 o4 _
將<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category+ c# E, G) c. D6 `& J! L4 |, W
# y) [, X9 s! G6 i/ X7 Q
content-empty-category.php正常加載了...) [1 @, K5 ]7 q3 q

0 t; v2 |0 W! y0 Q3 E" w沒法reproduce你的問題, 愛莫能助
& z' }' r0 }0 \4 D$ }* ~9 i+ R9 y
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-2 21:49:43 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28
0 L+ w, f( `+ z2 P. d這個就奇怪了, 我用的是默認主題, 2 _1 `! N5 b1 E4 d3 @) K: W
修改category.php的" _5 [$ x0 a1 t6 A- a
將的none改成empty-category
9 z, A0 q2 ]/ _7 W" j
版主大人,你是wordpress 幾?
9 }6 V1 z$ {9 T6 B4 Z) v是2012主題嗎?
6 m$ s/ J2 D( G
8 V2 q4 J4 `8 ^2 I: X0 v
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 03:10:23 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28 ; P- l, m0 `  A6 e' A) \, P
這個就奇怪了, 我用的是默認主題,
+ B5 C7 M* [6 \$ d' J修改category.php的% |. j* O% `; O/ S# ?% v. C
將的none改成empty-category

; e" o8 ~# d. v% b6 ?( U對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php
( b& ]$ h9 E5 q: }: Q8 L6 ~
1 b3 R7 }& M4 a/ U這種情況下,我無論怎麼修改,他都是404頁面。& D2 I& n6 d5 M1 [, c; s' e

* E( Z5 j$ ]  D. L  j3 s5 ~0 Z
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 07:45:32 | 顯示全部樓層
非常小黑 發表於 2013-11-3 03:10 4 n, p1 F- J. e. j
對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了( u/ E6 q, k/ I% Z4 U, L; Q# F/ [

8 u6 Y5 @8 R  p# `7 i4 R這種 ...

; q! d' ~& C0 }- @4 \你說的404應該不是content-none.php?
2 b! B2 C8 d) X6 {3 h; o3 _' z( B" B; _
而是404.php吧?
4 y3 `+ p- D* I- z5 E* q# `# {! S. w* W6 p" q' V9 X
再加上no-category, 我覺得應該是wp把www.xxx.com/xxx.php當成文章處理了., D% o+ q: _/ Q/ I

1 j1 z0 ?/ e% o, m用的是http://wordpress.org/plugins/wp-no-category-base/ 這個插件嗎? ; U( _4 f  q: l" L$ r. \

# Q. L* c/ h, J% G8 N* A* o你給我說下插件,我才好幫你2 U$ o* t; _  P' `+ g( ?

$ I/ b  y8 w, r6 e; t1 d: A2 ^/ n/ a( Z& O8 {% s  Z- B

: L1 D6 `( s( }3 T1 I, M
, J* o1 E' K( Z2 r
* q3 o+ i) U& }+ a$ n9 b* z
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 11:29:18 | 顯示全部樓層
本帖最後由 非常小黑 於 2013-11-3 11:31 編輯
" n2 v% t0 x! }* C9 m  P7 h. Y+ ?2 p
luguokankan 發表於 2013-11-3 07:45 ( C) y& e8 {0 q) z* C
你說的404應該不是content-none.php? 9 Z* ]1 r  d, G" S
: q  E" \9 @( {1 S1 Q
而是404.php吧?
- r* D  i' |- c% S8 v0 o$ \* S9 N' _
用的seo-ultimate這個插件
& I3 Y, ~- H5 j  [7 K$ Z, X* p他裡面有去除category這個功能。
! x9 L; T- Z5 a& W. ?# h
% A. Y; z$ {( w4 y是的,我無論如何修改elseif後面這段,他都顯示404
! C- X9 S, d+ M* q! H. @, q' u1 l2 T7 ~. z% s
然後我去class-wp.php裡面修改function handle_404()
" W! S7 U5 W; c- J去除is_category()部分,也沒用。
  D9 _  U1 N' ]) x! Y" A, X2 i" |, [$ ?. G! _9 \/ o' B9 v
我懷疑,是不是wp把重寫了category目錄以後,就認為不是is_category了?
& a3 @* p0 l# s0 K5 r4 z1 |
# \, {( I# t+ h2 d1 }
2 i9 A( c7 F7 @$ J
' d4 r, x  |) l; j& |( l1 o
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 12:33:30 | 顯示全部樓層
本帖最後由 luguokankan 於 2013-11-3 12:36 編輯
6 M# H% R# o% J5 p
非常小黑 發表於 2013-11-3 11:29
' V) F3 X( D& ?: z用的seo-ultimate這個插件
+ B6 Y* o( [" E8 ~3 k# N: @他裡面有去除category這個功能。
, {+ z! |  a! I9 s, b
/seo-ultimate/modules/permalinks/permalinks.php$ D2 ?3 O/ g  M# e9 S( c

& m7 r) f) s  J3 K. J$terms = get_terms($tax_name);4 ?; o. w1 ^3 i3 S& ^) t+ J

0 ]9 w7 s8 i8 G/ g7 a+ k3 M改成$ t% i8 O% t. X7 P( j3 e
! N9 J7 z6 k. r5 J+ \% ^8 f9 f
$terms = get_terms($tax_name,'hide_empty=0');8 U2 r8 I5 c, J; {
* J" l/ h1 a3 n. w1 E
要是再出現404, 請到Permalink Settings那裡按幾下"Save Changes".7 x3 Q5 r+ h5 U7 e5 N0 U' @  B
9 v! ?) y1 s# t: I2 ?: o
然後,你就可以修改主題的elseif了.6 t& P$ _/ W, J5 `* L

4 K7 c% G; {4 [' b) c3 f  K- k8 Q# C' T: w. \2 _9 R7 \& x
---: B) `0 ?  g: O2 q: s
原因,我稍微解釋下.  
0 h( [( p) B. F2 P6 I" h1 f* d7 M
( \$ z, k# z8 }; a+ Uwp會將居於permalink setting而生成的rewrite rules保存在數據庫.& C% `1 P4 V( Z# S! m
1 A& w7 {) `& O* E
當你訪問一個鏈接的時候, wp會跟這些rewrite rules對比,找出匹配的頁面返回給你.
* n$ E, a) U+ u5 n3 S& g& m1 u' P) F: x' H
你這個插件的問題是,他只生成post不為空的category的rewrite rules.
: }$ T3 R6 Z: D/ J3 T+ y
, x. K) L4 B3 x所以你訪問沒文章的category就404了......... 找不到匹配的頁面. ' s0 o- k4 {! b0 s9 }7 H

- D5 |5 i  M* i) m---
0 y8 R2 s' i5 J" I" E6 \由於這些rewrite rules是存在數據庫裡的, 你要是修改插件的話, 這些rewrite rules不會立即生效.4 A' F. Z0 o- J: e  F  k
0 L; S4 M3 |8 R6 ?( m% Q% E+ k! T
Permalink Settings的"Save Changes"按鈕能刷新這些rewrite rules9 r2 H- ]4 }' v7 L) F$ l

: k9 l7 c. T# H# s8 L: n/ ?+ q, t

評分

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

查看全部評分

回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 16:45:22 | 顯示全部樓層
luguokankan 發表於 2013-11-3 12:33
1 q9 ]7 p: h, A: g( _7 S( |/seo-ultimate/modules/permalinks/permalinks.php% U# K8 R% z0 ?2 J* Q* G
6 }7 E1 C, G0 V; A( Q
$terms = get_terms($tax_name);
1 W. Q* c/ ?% S  n5 u
果然如此啊。。。哥你太棒了。。。
$ S' g: E  E* w8 x; p佩服佩服。# `8 t- B- b" v; N6 [3 y

7 ~$ h. p- _3 a

點評

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

使用道具 舉報

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

本版積分規則

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

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

GMT+8, 2025-5-26 06:18

By DZ X3.5

小黑屋

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