2016-03-23 10 views
0

PHPに関しては本当にnoobです。ご協力をお願いしたいと思います。 404ページを適切な言語で表示する私のWordpressサイト用の404.phpを作成したいと思います。サイトは多言語で、オランダ語と英語です。 (私はいくつかのプラグインを試しましたが、私の現在のテーマでは動作しません)。私はいくつかの研究を行い、いくつかのビットと作品を発見し、動作しないPHPコードをマスターしました。あなたが正しい方向に私を向けることがとても親切であれば、それは素晴らしいことでしょう。これは私が思いついたものです:ドメイン言語に応じてページにリダイレクト

<?php 
$incomingUrl = $_SERVER['REQUEST_URI']; 
if($incomingUrl == 'damcms.com/en') { 
    wp_redirect(damcms.com/en/page-not-found-404); 
    exit; 
} else { 
    wp_redirect(damcms.com/pagina-niet-gevonden-404); 
    exit; 
} 
?> 

エラーメッセージは表示されず、何も表示されません。だから私は何かが恋しいです。どうもありがとうございました。 クラウディア

+0

'wp_redirect()'の中では、それらは文字列ですか?文字列を引用する必要があります。 – frz3993

答えて

0

まず、何も起こりません理由はここにある:

wp_redirect(damcms.com/en/page-not-found-404); 

あなたはそれ必見は引用符で囲むPHPで文字列を持っている任意の時間。それ以外の場合、PHPはそれを命令として解釈しようとします(は有効なPHP命令ではありません)。

だから、これは動作します:

wp_redirect('damcms.com/en/page-not-found-404'); 

しかし、もっと大きな問題があります:あなたは、URLが正確damcms.com/enある場合だけをチェックする必要はありません - あなたはそれであれば開始を確認したいですdamcms.com/enとなります。

ので、おそらくこの:

if(strpos($_SERVER['REQUEST_URI'], 'damcms.com/en') !== false)) { 
    wp_redirect('damcms.com/en/page-not-found-404'); 
} else { 
    wp_redirect('damcms.com/pagina-niet-gevonden-404'); 
} 
exit; 

しかし、1つのレベル深く行くが、でもこれはちょっとあやふやです。 WordPressには既に404.phpテンプレートがあり、404ページのテンプレートが表示されます。それを編集することを強くお勧めします。 - があります。if ... 'damcms.com/en'テストを行い、次に404-en.phpテンプレートを含めるだけです。このようにして、既存の404メカニズムは引き続き機能します。あなたが持っている設定では、訪問者は200ページにリダイレクトされているので、検索エンジンにはあなたのサイトには404は全く表示されず、すべてが有効なコンテンツです!

+0

ありがとう、引用部分を得た:)。私はあなたのコードを使用していました - 偽の後に ')')を削除しました。) - それはうまくいったのですが、それはオランダ404にリダイレクトし続けます。 WP 404のページについてあなたが言っていることを理解しています。多言語の部分が関係していた限り、その人にも問題があった。だから私はカスタムPHPを試していたのです。しかし、SEOがそのページの気の利いた内容よりも重要であるため、標準のWordpress 404を使用するのが当面の方が良いかもしれません...あなたの助けに感謝します:)。 –

関連する問題