过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2013-11-2 14:16:17 | 顯示全部樓層 |閱讀模式
本帖最後由 非常小黑 於 2013-11-2 14:19 編輯 7 z$ j* E. O( x7 w; `0 V# u
2 o: ^* h2 y) {5 i" h
如果一個目錄對應的沒有post,那麼就變成404頁面,代碼如下:
  1. <?php if ( have_posts() ) : ?>: [5 g# R6 w0 _! |; W0 [
  2. ......- e9 L* k1 G6 z/ ^% N, D
  3. <?php else : ?>5 A& Q0 D' ?$ G5 q! ~1 I
  4. <?php get_template_part( 'content', 'none' ); ?>7 k  I( Q1 z8 G: t# X
  5. <?php endif; ?>
    4 s8 q- V$ x  _6 L) e! B; ]
複製代碼
但是我不想變成404頁面,我想變成一個自定義的頁面
6 K1 X$ M; V# O/ _2 _" M我把<?php get_template_part('content','none');?>部分,無論改成什麼,都沒用,他依然還是顯示404頁面。0 P5 N# C0 q" a+ h1 R; k
/ t6 Y3 u& E6 ~* [# W* g
誰能告訴我怎麼做?) r1 K, X: l4 h
% w# [* }: r' w$ Z
& ?5 `: u8 c% j
/ [5 L. K0 ~- {: Z

1 X( s. L- H) ]. J; f2 P- A
4 w/ ]' b! T$ w. U) z" p0 R# h! `( T: i% x! ]6 z& X

3 p( y1 ^/ z7 J, I. v6 t- U, t# L: j
4 T0 A% h7 _* x1 z& G& F' Q) W( }1 z1 D8 d! _4 F/ B4 n
發表於 2013-11-2 18:20:36 | 顯示全部樓層
我好像記得某些模板有自定義404頁面的功能,但實在是記不清了。* Y* v! k7 |; [& f5 V% R* }! i
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-2 19:28:36 | 顯示全部樓層
這個就奇怪了, 我用的是默認主題,
, K9 a3 ~# p) j" C修改category.php的
* _: N/ C  u$ s) S/ D  _! u9 u將<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category, w# ?- a* F. c" j" U/ h
. H9 k3 B% B$ \; n% W# H4 F
content-empty-category.php正常加載了...% u' Q% ~6 B. X
, s$ R2 i3 V2 ^* ?- U) r# A
沒法reproduce你的問題, 愛莫能助
, F! I+ V* D$ d# Y( e7 f1 U7 ~
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-2 21:49:43 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28 * a5 B  }" I, y! j: Y5 M
這個就奇怪了, 我用的是默認主題,
: d# N, @( b, Q( A  S修改category.php的: m8 ~& P$ ~- @8 S
將的none改成empty-category
1 r$ t3 q8 ]8 p6 H( W4 R% N
版主大人,你是wordpress 幾?
7 G( ^% t8 t+ {/ I是2012主題嗎?
1 K1 T( x" Q. T. a4 O; p3 ?" ?' g/ l/ z/ ]* O  J
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 03:10:23 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28   E, S  X/ o# ?0 R# I
這個就奇怪了, 我用的是默認主題,
& o* o) r+ V, x& Y! r修改category.php的, v7 E1 P( V8 r! I
將的none改成empty-category

- o7 p2 t; j& ]# g+ f) W' C. i8 D對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php
' b- S' g' G! s# B: h& H2 V8 C2 I/ u
' R  r8 i% x: Q, W3 y這種情況下,我無論怎麼修改,他都是404頁面。
7 A0 C) m' S, _% p; w+ m& G: l, W- p( F" F- b* U5 ~- Z
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 07:45:32 | 顯示全部樓層
非常小黑 發表於 2013-11-3 03:10
$ W; i" S: }! f' C對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了3 }' O; t  h! @5 \( G: g
* A- t2 r7 u' K1 r( P' J6 r. o
這種 ...
6 k: s3 I' s" V( N( M8 p
你說的404應該不是content-none.php?
) i  R! N0 ^: x( m  K2 G9 R7 N5 I2 E6 \: T' e
而是404.php吧?& Q1 ^) \8 P$ w2 w9 M% L

; n3 C. o  f6 D% j8 [- |" \% A; O再加上no-category, 我覺得應該是wp把www.xxx.com/xxx.php當成文章處理了.
7 T$ i" C; b" Z, B( y: p# `/ J8 B) `+ u
用的是http://wordpress.org/plugins/wp-no-category-base/ 這個插件嗎?
# q; g" {( O/ E( c+ a0 k  g2 i8 Z2 @; x& B) L
你給我說下插件,我才好幫你
% u+ V0 v8 [% e1 t+ `: H$ {6 {1 w. O3 `+ u, |; J) o; [' x+ ^& M, Z

- \( q/ ?; L8 W1 d+ Y
3 f& a' u; F5 P1 l. F( Y" x
7 I/ v% q7 I0 c* B3 m$ E  H7 X( H( ?7 u% n9 [; x6 u
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 11:29:18 | 顯示全部樓層
本帖最後由 非常小黑 於 2013-11-3 11:31 編輯 8 @( o6 L# L2 N
luguokankan 發表於 2013-11-3 07:45
2 k8 [, Q( j, P4 v) t# c你說的404應該不是content-none.php?
( K4 i8 q1 p4 F7 }
4 C- |& J/ l+ P& Q. O& r% `7 Z而是404.php吧?
6 C$ g4 ^/ I" N- B3 Z
用的seo-ultimate這個插件. E" X# P+ s) f8 F8 s0 l
他裡面有去除category這個功能。
2 T5 `/ R( d, n+ C" B* q8 [' k$ l3 i% u: W$ k
是的,我無論如何修改elseif後面這段,他都顯示404& L! A; {/ a6 O

5 K% V6 v% h, ^) k4 V, k5 R+ Y然後我去class-wp.php裡面修改function handle_404() 0 _# s, U# {# [  W$ K) U
去除is_category()部分,也沒用。2 N9 g! Z/ n7 l. h
. L# x% E. q, M) i' t) b
我懷疑,是不是wp把重寫了category目錄以後,就認為不是is_category了?# c# |9 Q* O3 J
+ t* H2 [8 e! S  S+ n; }" Z6 _+ D

$ c8 f; i" W( ]) u, F$ Z/ h1 C9 ?6 S5 K
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 12:33:30 | 顯示全部樓層
本帖最後由 luguokankan 於 2013-11-3 12:36 編輯 $ T9 R$ S7 j  _" P) J$ ~% W
非常小黑 發表於 2013-11-3 11:29
& y5 Z. R+ t2 f; d" A, H% {( v& P用的seo-ultimate這個插件& L) A* i+ {+ `& G, M9 a9 n
他裡面有去除category這個功能。
( g8 e" X- k7 N' f$ h! m9 I7 s7 P
/seo-ultimate/modules/permalinks/permalinks.php* g2 }( D* y* L' e- w0 m9 {/ i# Q
1 g- {- ]# l) Z, p! b( E$ r8 n
$terms = get_terms($tax_name);
$ C( F& }  a, i1 H$ k/ U- U+ |& I
' M) v, n8 Y- Z1 T/ ?0 l0 r改成
" O/ s# @, ?9 k/ _, @* F
9 ?+ C; G! O5 E% _' M! W# e$terms = get_terms($tax_name,'hide_empty=0');
! ~  c$ i& v/ Z# R
9 R5 O- L- S6 a5 _3 y, `要是再出現404, 請到Permalink Settings那裡按幾下"Save Changes".5 s! b0 `( y/ O  }9 j' y

- D0 W! ]! W+ Z& J: h# F然後,你就可以修改主題的elseif了.
: H- U5 k8 N$ J# c9 f  e/ Z  h6 s6 ?9 J9 T

! N3 [$ r  N6 U4 ~  j0 O' c- s" o' O3 |6 h---; U% h3 h5 ~* c. r  Q& U- u
原因,我稍微解釋下.  
/ t* C( f; }7 E- l2 I4 {) c5 x
4 o6 w7 S( v# d/ ^) a7 nwp會將居於permalink setting而生成的rewrite rules保存在數據庫.1 v2 r% z; n& r5 a5 s

( j1 \) q7 x" R2 k3 y當你訪問一個鏈接的時候, wp會跟這些rewrite rules對比,找出匹配的頁面返回給你.
  j2 i4 M! m8 H3 ^* n  @7 r! h' P( T
你這個插件的問題是,他只生成post不為空的category的rewrite rules.
; G; t+ g! [1 A. x; f
3 M% i& \: ~# c/ [所以你訪問沒文章的category就404了......... 找不到匹配的頁面. ! S  y. L1 J2 D

* N/ B: s5 c6 @/ F---
3 }, @: t/ K/ u# d  g由於這些rewrite rules是存在數據庫裡的, 你要是修改插件的話, 這些rewrite rules不會立即生效.8 k7 |0 c: W' U7 H! A

: p' Y2 n/ f+ MPermalink Settings的"Save Changes"按鈕能刷新這些rewrite rules+ @% W2 f0 P0 x
; ]( h  l$ S# \" T, K' o, E* ]
- U$ L% G# t: l6 _0 |$ d

評分

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

查看全部評分

回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 16:45:22 | 顯示全部樓層
luguokankan 發表於 2013-11-3 12:33
6 }! s1 I, p, ^& D! w/seo-ultimate/modules/permalinks/permalinks.php
' a8 P3 f  h# I) j( u/ G9 H( i' z* C) L( O9 m$ O0 ?
$terms = get_terms($tax_name);

& W' X3 ?& f3 b果然如此啊。。。哥你太棒了。。。5 }4 |/ W  U; \$ q( @
佩服佩服。! K; S) e" {1 ^8 [+ @3 }( k
# M/ T( g5 J! ~4 N

點評

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

使用道具 舉報

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

本版積分規則

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

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

GMT+8, 2025-5-26 09:10

By DZ X3.5

小黑屋

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