过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2013-11-2 14:16:17 | 顯示全部樓層 |閱讀模式
本帖最後由 非常小黑 於 2013-11-2 14:19 編輯 - i3 q- Y, o/ y; I  Q4 ^! Y

7 V6 i, T* L3 D3 a+ \( f0 h如果一個目錄對應的沒有post,那麼就變成404頁面,代碼如下:
  1. <?php if ( have_posts() ) : ?>" |: \6 ?- b; A
  2. ......
    + `+ o1 m2 A1 Y/ W2 P  c
  3. <?php else : ?>* \" E6 B1 _$ g0 [; ^# `
  4. <?php get_template_part( 'content', 'none' ); ?>
    , h' _' I/ d' J6 o, W6 O
  5. <?php endif; ?>% s3 Y) F0 L! n! _
複製代碼
但是我不想變成404頁面,我想變成一個自定義的頁面: w2 a3 K! d2 ]* v, S/ w9 u& b  u
我把<?php get_template_part('content','none');?>部分,無論改成什麼,都沒用,他依然還是顯示404頁面。* T; k0 e# f' j6 p

7 c8 ]7 Z* k0 i2 X, N9 e. H誰能告訴我怎麼做?
0 X  o: a  N4 a- Y8 k* q9 u3 ^8 f2 m1 J5 {/ P! R6 \4 D
. T9 V/ `" [- `% v! _/ _4 a
  V$ S& g  a7 g3 l3 \
9 e0 D! |! w% y2 U/ Q2 y

! g; A0 H8 l! T! i9 s
- |" h  _2 X2 `) ]- M8 v! v4 {7 ^8 \2 z; s7 d% _

  @' B% X! D2 ^: o3 m
" u% J2 l( K1 i
發表於 2013-11-2 18:20:36 | 顯示全部樓層
我好像記得某些模板有自定義404頁面的功能,但實在是記不清了。
( R1 x8 ~8 `7 m. b
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-2 19:28:36 | 顯示全部樓層
這個就奇怪了, 我用的是默認主題,
4 q1 b! W! H3 g5 w! N; n/ o$ M# @修改category.php的
# K1 T( h. f" i將<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category, l2 z- b9 d* k6 l8 Z  n4 ]$ n

. B9 L9 W# N, s% e  }, N9 a& {! P% pcontent-empty-category.php正常加載了...
* V6 l( X* X8 Q- E) n
+ `, O6 U. u* X% M% z2 K沒法reproduce你的問題, 愛莫能助 $ o! c7 R: _* T: F7 k) j/ l6 C
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-2 21:49:43 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28
0 v! J' M/ l4 u4 @這個就奇怪了, 我用的是默認主題,
" ~  C6 L" v: Y修改category.php的
7 U- U5 c& L. g4 L, H4 v將的none改成empty-category

8 c+ N' r3 |( M% l2 |* l版主大人,你是wordpress 幾?5 X$ l; V. f' j5 u" @: {& a
是2012主題嗎?$ O% s/ z  b8 y7 z7 Z
4 g; w# h( Y* S( m, |* z, P7 o
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 03:10:23 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28
$ M7 }3 C9 V8 K; K, x( W$ C! ~這個就奇怪了, 我用的是默認主題,
0 X4 I( P. V' p4 l7 W- s, I修改category.php的
; a$ w* h/ y- }9 a  t將的none改成empty-category
! {! _+ N* B4 q' @/ P
對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php" m& J& R2 n. H2 i( T" ], q, U

2 {3 T. S9 ]) h- F/ E  u這種情況下,我無論怎麼修改,他都是404頁面。
7 G" T1 l* o" Y9 [& m2 [9 Z/ F& b- I7 T, a& W9 Y
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 07:45:32 | 顯示全部樓層
非常小黑 發表於 2013-11-3 03:10 ! J' p* ]: @% a8 W
對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了6 _8 d8 Z7 {; h, P

. W( k' |, ]5 h( c- u" ?這種 ...

  O4 G! L6 N* i- I0 |2 I5 [+ i你說的404應該不是content-none.php?
0 q# k% ]# Q" F; [8 X7 @; {4 O5 L! ]6 X2 M+ ~9 i( e9 H2 z
而是404.php吧?/ y9 `6 t8 Q& p! \" s  C
. W  ~4 o* h6 U
再加上no-category, 我覺得應該是wp把www.xxx.com/xxx.php當成文章處理了.
9 {( j# j7 }9 K
$ N6 g! J8 T: X用的是http://wordpress.org/plugins/wp-no-category-base/ 這個插件嗎? $ n9 M& Y4 y, y0 A. M9 I

+ d3 J1 s0 t, J& b4 d7 `你給我說下插件,我才好幫你
* R; N1 C/ V5 i& o2 d6 {2 ?" U: u, n6 n8 p( o
( v2 i7 V7 E0 A6 b% a
% C4 J1 H% d# G7 j2 H

3 ]4 y- h4 D" q  y+ R! K* T( V& R! `1 i$ B" U- U9 F0 ^7 Y2 m1 s  P
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 11:29:18 | 顯示全部樓層
本帖最後由 非常小黑 於 2013-11-3 11:31 編輯 ' }' G  K5 Y+ I( O
luguokankan 發表於 2013-11-3 07:45 / w! r6 }. g: {1 |5 R. t
你說的404應該不是content-none.php? 2 d8 y. b( P: ?3 f# F

( y% S% B4 h  C& C* L. ~而是404.php吧?

, W: X3 y. F! e用的seo-ultimate這個插件$ x. m4 ?0 D: z8 `( }; d: D
他裡面有去除category這個功能。
' I+ E1 o& z$ G6 o8 b: U! [" n9 U2 U  _1 I% z& W  Z
是的,我無論如何修改elseif後面這段,他都顯示404& a; q; u( S6 m! g6 B" c

( ^& s' t2 i7 Y5 s- D然後我去class-wp.php裡面修改function handle_404() ) h+ b0 j7 S! ?' f" o
去除is_category()部分,也沒用。4 [1 ~! U2 U  D6 }: ]

$ G& Z3 j% `' w3 u" {我懷疑,是不是wp把重寫了category目錄以後,就認為不是is_category了?
/ P; G. A2 D3 Z- E1 W
% [) g+ ?! n5 v: M1 J* a9 h/ N% z$ z8 i# j

' ]9 F" `4 S" k
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 12:33:30 | 顯示全部樓層
本帖最後由 luguokankan 於 2013-11-3 12:36 編輯 $ _5 _: q9 x8 W! z8 d* G2 f- k7 y
非常小黑 發表於 2013-11-3 11:29
1 H6 k9 h' z, R" C& r用的seo-ultimate這個插件
* R& c* A6 T2 ^' w) P他裡面有去除category這個功能。

# W% j3 B7 D4 W/seo-ultimate/modules/permalinks/permalinks.php
+ G" C, S2 t2 J6 A7 Q$ {) w$ \- ~& Q. f: Z1 P
$terms = get_terms($tax_name);# y3 ~+ @$ b" ]

; D3 G3 F% j# f. E& R, u改成0 h, e3 P, U; o2 L( f# g" Y

7 b, L6 z2 s3 h+ t$ A  d2 ^$terms = get_terms($tax_name,'hide_empty=0');
' C8 @: J  d" Y; e, C+ F- R. J& v/ h+ v0 |' @" J" h: K
要是再出現404, 請到Permalink Settings那裡按幾下"Save Changes".% b& F; Y4 T) M+ |8 P: W

& H! _% f( r9 U* y4 f& ]然後,你就可以修改主題的elseif了.
+ @3 y& I& Z/ x, s
5 A/ t$ B" }9 r. Y
/ x! \  E# ]3 V% ?+ L, `---
) V' V; w9 R- U( b原因,我稍微解釋下.  
9 {! V8 J, Z5 I, q9 y, i
' q8 H6 ]9 X  Q" C' W7 D: m+ W5 m* Mwp會將居於permalink setting而生成的rewrite rules保存在數據庫.0 R- Z8 n$ J5 \5 n" w6 H3 W8 W$ e, k

7 H. M  _3 H% i* J, \+ w/ U8 l3 N當你訪問一個鏈接的時候, wp會跟這些rewrite rules對比,找出匹配的頁面返回給你.
& Z( o* h# q2 ~" M1 J* F; k; B0 ~% T9 Y) L
你這個插件的問題是,他只生成post不為空的category的rewrite rules.
+ g" w# S4 O; i9 _
* f9 ^& B; @' p所以你訪問沒文章的category就404了......... 找不到匹配的頁面. ! u4 U5 l8 V' ^- W) y2 d' {5 w3 [; X
8 ]) l: j" _  W* r% C0 U' l. S' n" R
---; y2 e; `& y0 M# }
由於這些rewrite rules是存在數據庫裡的, 你要是修改插件的話, 這些rewrite rules不會立即生效.! T. v5 _( F: A& Z2 c
6 {2 x5 A3 a. h, z
Permalink Settings的"Save Changes"按鈕能刷新這些rewrite rules( V  _' u4 F( J
0 k/ t8 Z/ U& b& ^
: @  K: v# V  h1 m! L6 [

評分

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

查看全部評分

回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 16:45:22 | 顯示全部樓層
luguokankan 發表於 2013-11-3 12:33
9 v1 L. o9 t, w/seo-ultimate/modules/permalinks/permalinks.php8 f8 `* z8 S9 P

$ W, F" g) [" y0 M& }) g% m$terms = get_terms($tax_name);

- V: n0 W. A. o) L/ j% T1 B果然如此啊。。。哥你太棒了。。。
1 b2 ^7 X. |& Z佩服佩服。
" k; {) K. X1 `- }/ t) ]
4 G- ~; A! k3 A9 P4 i. V

點評

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

使用道具 舉報

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

本版積分規則

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

GMT+8, 2025-7-11 08:47

By DZ X3.5

小黑屋

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