过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2013-11-2 14:16:17 | 顯示全部樓層 |閱讀模式
本帖最後由 非常小黑 於 2013-11-2 14:19 編輯
! v" F" P. v5 w
( V  a) ?  G  I如果一個目錄對應的沒有post,那麼就變成404頁面,代碼如下:
  1. <?php if ( have_posts() ) : ?>
    - d8 p# K9 Y( M9 A' t% r, O6 R
  2. ......
    : `' B* I( g4 V' d; m
  3. <?php else : ?>' [0 d/ Z( t2 B) _
  4. <?php get_template_part( 'content', 'none' ); ?>
    1 B$ V0 B* ~( K) E$ L  }& k+ |# `3 b
  5. <?php endif; ?>
    2 ^% V# S6 h9 b% o
複製代碼
但是我不想變成404頁面,我想變成一個自定義的頁面1 \- X" T0 f/ X5 L6 i
我把<?php get_template_part('content','none');?>部分,無論改成什麼,都沒用,他依然還是顯示404頁面。
) m+ Q# T4 f' ]! E2 \* k
, [; C$ t3 x# S) O3 C2 g誰能告訴我怎麼做?
/ O( E$ \- F% |3 @* A# v# A% l# o; j6 x2 k$ k* l. k7 b
0 g$ Z0 \* `2 D
4 \# k- q. a8 p. k

0 V8 ^# @" u9 a" S; {" A: l: j1 }# v; M3 u- q* z. t
7 z, f8 @. r+ z
2 ~7 J" v5 F( ]5 T  x! `

! o9 h  J& G1 x, I! _5 ]6 |5 J  }& A! ^6 {5 t7 k3 _3 q
發表於 2013-11-2 18:20:36 | 顯示全部樓層
我好像記得某些模板有自定義404頁面的功能,但實在是記不清了。" ]) ^9 ?- u  a: ~  ^
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-2 19:28:36 | 顯示全部樓層
這個就奇怪了, 我用的是默認主題, + I. \1 r3 s/ b* C9 n1 M1 Y; _
修改category.php的" X3 G3 M' c, w- E5 ^1 p
將<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category
5 T7 d  m4 b% c% A3 a+ }0 B
+ O* L& U  C; V8 P" Zcontent-empty-category.php正常加載了...
" `4 s, S3 w3 R7 X' }! R* K
  q0 y: R; H1 I沒法reproduce你的問題, 愛莫能助
( }+ X1 s; V2 G+ Y
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-2 21:49:43 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28 + x; t  b, c: }/ L- F
這個就奇怪了, 我用的是默認主題,
/ }" @) ?3 G. F; Y# ]% h1 U: v" v- [修改category.php的( u, p  T9 W* j+ ]4 x
將的none改成empty-category
8 q% p# t6 n9 j" a1 _9 x* d, c
版主大人,你是wordpress 幾?
* k5 a5 p" q& f  A/ O: L9 D7 g是2012主題嗎?
4 r+ `! K- s6 S, m+ D& O1 [' e# Y3 a7 c
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 03:10:23 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28
3 D& E4 [  V( _0 {0 F3 m這個就奇怪了, 我用的是默認主題, 6 w3 |9 V- |, J) `( M
修改category.php的
, N- n& |% K0 g6 J將的none改成empty-category
/ z  V* |. u& G1 K) K
對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php) {+ p9 S2 i0 f
+ Q# X, D( ]' }8 Z& |5 [4 Y
這種情況下,我無論怎麼修改,他都是404頁面。
7 h# M) A% S" N! q! _- C& T9 `: a1 L* x
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 07:45:32 | 顯示全部樓層
非常小黑 發表於 2013-11-3 03:10 2 {, u, J5 d/ X7 t  a  _1 j8 a& W
對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了
% P6 {# K7 o5 u7 e: r( E3 b! M" Q& s; t
這種 ...
0 D* M8 ?! T8 d5 h- ^+ ^4 h
你說的404應該不是content-none.php?
5 k0 c' x4 t6 k$ j
  C3 m2 K1 ~) \# U而是404.php吧?% j, |' E( Y, t' ~* v- v9 e

7 J+ B& W1 q4 t) S+ T4 u再加上no-category, 我覺得應該是wp把www.xxx.com/xxx.php當成文章處理了.
4 M% d2 d6 r( A" i* k( E5 j& q7 C, Y0 h
用的是http://wordpress.org/plugins/wp-no-category-base/ 這個插件嗎?
" P& y/ Y5 `. P4 ?0 t" v9 g: V6 B3 B% s! P7 G) X- C
你給我說下插件,我才好幫你
1 n, V2 t' a2 b4 Z6 g+ A" E4 Q0 C+ f) I8 b( S  @& `

9 H9 @* M9 J% d# ~: E
- l8 l8 b7 G/ V5 Q* A3 V4 h7 L5 q
: @9 A4 o! h: I( E8 e
0 c+ r, {' V1 C+ D9 Z
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 11:29:18 | 顯示全部樓層
本帖最後由 非常小黑 於 2013-11-3 11:31 編輯
) F+ }% H' ?0 ?5 X  F  A7 b
luguokankan 發表於 2013-11-3 07:45
# V  @0 ?. [2 `" d2 V- L5 Z你說的404應該不是content-none.php? 1 [( s- P. s7 V4 A% z  i

* ~0 W" {8 F* v# |: r4 l" ]! z而是404.php吧?

5 Q% T6 i+ x  x, t3 i+ C  E8 v用的seo-ultimate這個插件8 e2 \$ Z- Q4 x/ N
他裡面有去除category這個功能。3 l8 C1 |+ k4 O+ B8 S% V

5 ~: I! B" B' I( p5 c" [! O. I是的,我無論如何修改elseif後面這段,他都顯示404
4 u% r4 i; h. u" j
; N2 ]  W3 u2 G! z* W0 h" O* Z$ S然後我去class-wp.php裡面修改function handle_404()
, F$ _& V1 p8 Q  A去除is_category()部分,也沒用。! W# a& p5 w; v8 G% E( ^

4 E* g( V' ~$ N, y. a我懷疑,是不是wp把重寫了category目錄以後,就認為不是is_category了?1 m( C) b+ x& w9 \- Y& B3 o% ]
+ o* R. D0 h) }2 K, Z
9 ^# h" h9 p' L1 z  r- b  F

) S! B/ }/ C: K1 t7 `
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 12:33:30 | 顯示全部樓層
本帖最後由 luguokankan 於 2013-11-3 12:36 編輯 3 J* Y2 B  k' m- w; Q
非常小黑 發表於 2013-11-3 11:29
. F  E2 x1 _/ X, M用的seo-ultimate這個插件9 k# g+ y& V4 M/ r0 Z. H
他裡面有去除category這個功能。

0 s- f+ w  p6 u/seo-ultimate/modules/permalinks/permalinks.php
1 S- v5 k- a6 }4 {
4 k0 {' M; [, i5 L) [! s. s$terms = get_terms($tax_name);
0 i% T, O# r0 P. t4 B9 A0 z# B" c) a0 y  N4 P" N9 ?( M' [1 i
改成
( p2 k8 y, }- e8 ~6 X8 C
, F$ ]' p0 s1 Z* b% y9 ~) @4 z+ ]$terms = get_terms($tax_name,'hide_empty=0');
7 V/ X" b. W1 {: K# F0 G( T/ P9 |) R/ A. _; v6 l; e. H
要是再出現404, 請到Permalink Settings那裡按幾下"Save Changes".
, r1 A' j0 v- z7 n' V5 p2 k$ z- t* y& ^5 Z, J8 S
然後,你就可以修改主題的elseif了.
+ u4 \) F) {. A" \  F4 V6 G: L: `# n, q( m0 f
9 v+ x1 k8 G2 T; n9 t# @: u
---8 m9 H' ^6 B7 L2 `- a- ~2 i% q
原因,我稍微解釋下.  ( l& k$ I9 h! S, w; H; u

+ h3 {' Y3 X) f5 kwp會將居於permalink setting而生成的rewrite rules保存在數據庫.  A% L9 @) S; E6 C

& A+ x+ a- J3 W( O當你訪問一個鏈接的時候, wp會跟這些rewrite rules對比,找出匹配的頁面返回給你.: ^& j0 C7 I) R0 h4 n$ _! f
# t. [4 A% v6 a- ~# V+ E2 a6 U0 s
你這個插件的問題是,他只生成post不為空的category的rewrite rules.$ |% U9 ~5 O2 p! |' Y9 F& G2 N8 u

. Y. Y' g: |9 P+ a2 o8 W* g所以你訪問沒文章的category就404了......... 找不到匹配的頁面.
0 m6 ]. \7 P/ y; u  J# F* G0 K2 }. P% `% R/ F& L! d! Y5 A6 n
---3 U5 f3 T6 o  r6 V9 a
由於這些rewrite rules是存在數據庫裡的, 你要是修改插件的話, 這些rewrite rules不會立即生效.( _8 T0 @" N9 W. w
4 {* L2 |# g: o' c: l! P& F
Permalink Settings的"Save Changes"按鈕能刷新這些rewrite rules9 x$ ?8 h! m. o- A: t' R9 u( _: @

/ P( U, a+ L; x6 x% C& a; u# l- C: V+ m+ ~

評分

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

查看全部評分

回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 16:45:22 | 顯示全部樓層
luguokankan 發表於 2013-11-3 12:33
# J! ]' A# y8 m7 [/seo-ultimate/modules/permalinks/permalinks.php
9 M/ m% u, [( F, Z8 b" X7 [) R( K3 c% k/ m8 f! }8 [; X) U
$terms = get_terms($tax_name);
0 c9 x  w1 C- P9 f' ]- G0 J' _4 P
果然如此啊。。。哥你太棒了。。。
9 ]) \1 g/ x* i& K佩服佩服。
4 J8 \0 v& L' g5 m3 b# O. d; J- t& I6 v. K+ _& L

點評

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

使用道具 舉報

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

本版積分規則

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

GMT+8, 2025-7-7 05:37

By DZ X3.5

小黑屋

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