2016-05-25 12 views
0

私のテーマオプションでは、ユーザーが404テンプレートのページを設定できるようにしています。 (つまり、通常のページを作成してそのページを404テンプレートとして選択することができます)。このために、wp_dropdown_pages()を使用してページのドロップダウンを追加しました。選択オプションから値を取得し、WordPressのヘッダーにエコーコンテンツを入力します

ここで私は明確なSEO理由のためにユーザーが選択するページにecho noindex,nofollowメタ値を入力します。私はこれで試しましたが、うまくいきません。

function noindex_404(){ 
    global $post; 
    $option = $_POST['404_id']; 
    // $post_val = '2'; 

    if ($post->ID == $option){ 
    //if ($post->ID == $post_val) 
    // if I try with the direct post value, it's working  
    echo '<meta name="robots" content="noindex,nofollow">'; 
    } 
} 

add_action('wp_head', 'noindex_404', 1); 

は、あなたがこの条件を使用して、404ページを確認することができます

<select name="404_id" id="404"> 
    <option value="1">Page 1</option> 
    <option value="2" selected="selected">Page 2</option> 
    <option value="3">Page 3</option> 
    <option value="4">Page 4</option> 
    <option value="5">Page 5</option> 
</select> 

答えて

0

のオプション値を404_idのオプション名の下に選択されwp_dropdown_pages()と2ページで作成されたHTMLです。

if (is_404()) { 
echo '<meta name="robots" content="noindex,nofollow">'; 
} 

この場合、特定のページにバインドされていません。 404ページで使用されていたものがあれば、この関数は404ページかどうかをチェックし、それ以外の場合はコードをエコーアウトします。 よろしく!

+0

あなたの答えは本当にありがとうございます。私はこれを404テンプレートの出力用に用意していますが、作成したページはどうですか? 404テンプレートという名前の通常のページを作成し、これを公開したとします。このページは404のために使用されますが、まだ公開されているページであり、他のSEOプラグインを使用している検索エンジンからこれを隠さない限り、このページもインデックスに登録されます。私は理にかなったと思う。もう一度ありがとうございます – Ayanize

+0

get_post(id)関数を使用してページIDをターゲットにすることもできます。特定のページIDにcondtionを適用するか、この条件で複数のページを追加することもできます。 それが本当にあなたと私の答えが真である場合は、この上にplzマークのチックとあなたも投票をあきらめることができます:) ありがとう –

関連する問題