过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2013-11-2 14:16:17 | 顯示全部樓層 |閱讀模式
本帖最後由 非常小黑 於 2013-11-2 14:19 編輯   x6 x- d; Y& {& ?) G4 Y

2 X. C* D; p" F7 Y: x: N7 W5 y$ `' {7 B如果一個目錄對應的沒有post,那麼就變成404頁面,代碼如下:
  1. <?php if ( have_posts() ) : ?>
    : _/ I! c0 C. D/ S
  2. ......
    0 _6 T0 p, R- W5 N  ]: U
  3. <?php else : ?>
    0 ]  f5 f% X1 S; z  ?7 J
  4. <?php get_template_part( 'content', 'none' ); ?>
    : d1 e6 j" D0 l4 B, H! n0 S' W
  5. <?php endif; ?>
    " @. v& x" o( L: z  b
複製代碼
但是我不想變成404頁面,我想變成一個自定義的頁面
2 G4 W3 R! o8 s. ~! n我把<?php get_template_part('content','none');?>部分,無論改成什麼,都沒用,他依然還是顯示404頁面。
# F9 m" s. m' o, l) C3 ~( ^! l7 B& k
誰能告訴我怎麼做?7 A! c7 S1 M" Q; o
7 s0 Z0 t* N0 V9 L

' _  b( b* f3 D: ?6 o
% G6 y7 S! d4 D3 W: Q; ~" F7 E  d7 w& ~7 Y) I  R# ?6 Z, v- i

9 l5 c, L# b/ o
4 N5 I( d) D8 J+ ^! V6 q4 E0 a; w% i) e
  v) o% v8 ?8 w, M8 j! |4 J
6 r  g* D1 w2 ?+ z
發表於 2013-11-2 18:20:36 | 顯示全部樓層
我好像記得某些模板有自定義404頁面的功能,但實在是記不清了。: w+ P% I0 v1 L- K; ~4 ~* [) c
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-2 19:28:36 | 顯示全部樓層
這個就奇怪了, 我用的是默認主題,
5 |2 l+ I+ j" y, W修改category.php的
9 H+ m" X" U4 s; |2 R3 @* i將<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category# _# W% X9 t9 t* c! Q0 W
% k) @1 B) |& y, C) X
content-empty-category.php正常加載了...
) T/ j  i: m# ]" C9 x# X' R. f
$ H+ y4 h9 ]3 z7 g沒法reproduce你的問題, 愛莫能助 : j6 W' p0 `6 Q  w$ {
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-2 21:49:43 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28 # g1 l2 d% P8 d$ D
這個就奇怪了, 我用的是默認主題, , q+ s( g( ?5 }1 L, _
修改category.php的. B0 l! y4 B0 h8 W1 Z# ]! k# k
將的none改成empty-category
$ X$ O) a, z; x4 W* O
版主大人,你是wordpress 幾?& D# e" D; _/ m+ @, D5 C' @
是2012主題嗎?& H" _5 L+ M* {. i0 R& r
  |( Q# {7 s- E' n
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 03:10:23 | 顯示全部樓層
luguokankan 發表於 2013-11-2 19:28 . F2 C( J' z6 Y- z% H, Z5 U2 t/ o
這個就奇怪了, 我用的是默認主題,
! W6 f! V1 h/ V1 Z7 m$ l2 J修改category.php的
+ ]! H- u: Q: ~, v% e$ A將的none改成empty-category
7 _0 z8 A( f$ e' H  ]3 L
對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php
) r6 K  P9 n! {( l5 I) Y6 ?3 c0 M6 g7 x
這種情況下,我無論怎麼修改,他都是404頁面。8 q6 q$ O! z1 ~' Y  w* c
+ ~- n* W9 B, v3 E$ h
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 07:45:32 | 顯示全部樓層
非常小黑 發表於 2013-11-3 03:10
, G% M' U' H% z對了。我是做了no-category處理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了
/ m* {! A0 X! X9 j
0 H7 Z4 W/ X/ u$ P1 y這種 ...
9 ^, D, T$ D! R( A$ A
你說的404應該不是content-none.php?
7 [: @/ Z1 ^# D* a8 X0 K# R. ]" u/ b+ |5 }. n6 N
而是404.php吧?
9 a' m; X' Z. [! G- i8 \1 U& Q1 y
4 c% a- s9 C5 B, n) R% s' L! ~7 o. H再加上no-category, 我覺得應該是wp把www.xxx.com/xxx.php當成文章處理了.0 G! p  d1 \6 P$ F& G. r7 f& I

7 a* I: H% R/ H& }+ A2 x0 }用的是http://wordpress.org/plugins/wp-no-category-base/ 這個插件嗎?
8 q; r$ I5 d' l8 y  W8 q4 X& I, S  @
你給我說下插件,我才好幫你" l3 u& C, f9 f- u/ y0 n2 g
2 c! ?; b3 h+ K9 Y- b

* w/ a3 d& R$ g0 \- _* X0 m2 [2 J8 q
8 {$ x% Z" s! q3 W* s

; l+ B! f6 ^4 `4 K+ }
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 11:29:18 | 顯示全部樓層
本帖最後由 非常小黑 於 2013-11-3 11:31 編輯 3 s# k+ M- y& j% }' a% s( G+ w
luguokankan 發表於 2013-11-3 07:45 - E4 U' _1 X, o8 |$ u" z9 u) m6 `& b
你說的404應該不是content-none.php? 4 i) @2 P6 `" ?! H

5 p8 J* `9 i; f5 s3 L/ ^而是404.php吧?

3 E4 }0 E" a0 \用的seo-ultimate這個插件
8 Q: e% Q6 t( p/ j( R他裡面有去除category這個功能。
1 `$ j- q! P! ]* p, ^# I6 i* z7 ^2 Z7 }' h7 q. R8 E7 W4 S' G6 p
是的,我無論如何修改elseif後面這段,他都顯示404
, |/ I5 R* H( ]3 e
3 {- D4 c# D2 v) L" c* x然後我去class-wp.php裡面修改function handle_404() 9 O' J! j" s# `% {
去除is_category()部分,也沒用。3 j! m7 w; ]  A( o: Y6 I' Y

% s( Q$ u: J, }8 ?# Z我懷疑,是不是wp把重寫了category目錄以後,就認為不是is_category了?
. U' d6 y/ \. Y8 L8 k5 m. J
* H; g* z. Y( ^, s  b% v6 |8 _! y: \; e. S2 c
! g* d, D, z  t' s! U
回復 给力 爆菊

使用道具 舉報

發表於 2013-11-3 12:33:30 | 顯示全部樓層
本帖最後由 luguokankan 於 2013-11-3 12:36 編輯 : o0 G4 p. @; g
非常小黑 發表於 2013-11-3 11:29 % L( ]2 H) r0 y$ |4 {7 b
用的seo-ultimate這個插件/ o7 O* u# n' R& t8 T
他裡面有去除category這個功能。

/ l: Z8 m, _: H1 f" r( k' z: L/seo-ultimate/modules/permalinks/permalinks.php' `, h. }& C5 R- k- ^0 \4 `

0 H, H7 s& Y8 `" B$terms = get_terms($tax_name);5 c8 D& I7 `' c* }3 X3 w/ |8 d
, }, y- y: o7 u" O/ f$ u- C
改成
0 t7 c7 P8 J" I1 T9 V7 o* U6 P% A* v1 j7 F/ a
$terms = get_terms($tax_name,'hide_empty=0');# i& h8 y& ^3 S; [5 m3 H! t

, e7 E( I* P0 j7 M# ]9 }要是再出現404, 請到Permalink Settings那裡按幾下"Save Changes"./ H9 z! P( [% R# N' x$ {
8 F8 T* G8 U( D0 o0 C8 X" e
然後,你就可以修改主題的elseif了.
! u0 C; K# L, [" v  G; Y4 f0 g
- I+ z. K  u4 r; v- m
, O$ f6 L( G. ^2 L  y% ?  o---( R; N( R& @. d. y( \0 o
原因,我稍微解釋下.  
1 S7 b! @6 `: `1 Z  Y; X/ x& I$ @, z) ^
wp會將居於permalink setting而生成的rewrite rules保存在數據庫.
. s4 @! b3 ]8 R8 c
) A% O  j" D4 I4 C  @3 ^1 e當你訪問一個鏈接的時候, wp會跟這些rewrite rules對比,找出匹配的頁面返回給你.
- [" U$ h  O! u- D3 U! I8 S6 z0 L( u* e7 h7 x* w
你這個插件的問題是,他只生成post不為空的category的rewrite rules.
5 g( ?8 _6 n6 D+ B* E4 {) n* q( n6 k' p1 R' O( c3 z1 c
所以你訪問沒文章的category就404了......... 找不到匹配的頁面.
9 L' x- e, K( @  F
  L" S5 m6 }8 l9 ~---
% f4 M# K4 R$ A/ T* I& Z7 r( ~% k由於這些rewrite rules是存在數據庫裡的, 你要是修改插件的話, 這些rewrite rules不會立即生效.
& _, k! f9 j3 A) e( S9 ?
( T) C. w  r- T/ T1 K6 l  ~# q& B) pPermalink Settings的"Save Changes"按鈕能刷新這些rewrite rules
- C5 z, K; n1 h9 E7 h$ R
9 n4 C! z* ~- q/ n
6 f0 H! M# N, I

評分

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

查看全部評分

回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-11-3 16:45:22 | 顯示全部樓層
luguokankan 發表於 2013-11-3 12:33
6 A. u. F1 a! D  x% C/seo-ultimate/modules/permalinks/permalinks.php( M( ?7 |1 Y1 N1 W6 {

( E* \4 W/ d0 u: C' b/ D7 h  E/ s$ H/ Q, j$terms = get_terms($tax_name);

7 q0 ~& O1 x8 j2 s果然如此啊。。。哥你太棒了。。。
. v0 n1 D3 h: c; z$ {佩服佩服。( a3 [- u2 D' n

: q1 f4 z3 Z! J2 {# B- }" J

點評

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

使用道具 舉報

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

本版積分規則

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

4um點基跨境網編創業社區

GMT+8, 2024-11-27 16:58

By DZ X3.5

小黑屋

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