-2

内部に次のphpコードがあります私のウェブサイトの一部。

これは、メタ名 robots、wmt ツール検証メタ、および rss メタを追加する非常に単純なコードです。

それは問題なく動作しますが、1つだけ:

IE または Fireforx を使用してページのソースを調べると、メタ間に新しい行が表示されません。それらは 1 行に次々と表示されます。

新しい行を追加するにはどうすればよいですか? 何か案は?このまま放っておけば問題ないのでしょうか?

コードは次のとおりです。

if((is_home() && $currentpage == 1) || (is_single() && $title != 'Online' && $title != 'Cam') || (is_category() && $robots == 'y')){
        echo '<meta name="robots" content="index,follow"/>';   
    } else {
        echo '<meta name="robots" content="noindex,follow"/>';
    } 
    if(get_option('enable_wmt') == 'y'){
        echo '<meta name="google-site-verification" content="'.get_option('wmt').'"/>';
    }
    if (is_home() && $currentpage == 1){
        echo '<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="'.$site_current.'/feed/"/>';
    }
4

1 に答える 1

6

まあ、実際には、改行を指定していないことが原因です。他のすべてのコンテンツと同様に、改行を生成する場合は改行も出力する必要があります。

コードが読めなくなるわけではないので、通常は次の構文を使用します。

if((is_home() && $currentpage == 1) || (is_single() && $title != 'Online' && $title != 'Cam') || (is_category() && $robots == 'y')){
        echo '<meta name="robots" content="index,follow"/>'."\n";   
    } else {
        echo '<meta name="robots" content="noindex,follow"/>'."\n";
    } 
    if(get_option('enable_wmt') == 'y'){
        echo '<meta name="google-site-verification" content="'.get_option('wmt').'"/>'."\n";
    }
    if (is_home() && $currentpage == 1){
        echo '<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="'.$site_current.'/feed/"/>'."\n";
    }

説明: シーケンス\nは単一の改行文字の説明です。次の 2 つの理由から、文字を直接入力することはできません。

  1. これは空白であるため、編集者にとって非常に扱いにくく、

  2. 「通常の」改行は、言語構文において特別な意味を持ちます。

その改行文字を php 内で使用する場合は、二重引用符 ( ) で囲む必要があります"。このような特殊文字が二重引用符で囲まれている場合にのみ、php によって解釈されます。一重引用符 ( ') を使用すると、これらのシーケンスは解釈されないままになります。これは、ときどき役立つ違いです... この場合、出力する文字列を echo コマンドに渡す方法のシンプルで読みやすい方法に固執するのに役立ちます。コロン ( .) を使用して 2 つの文字列を連結し、二重引用符を使用して特殊文字シーケンスを解釈します。

完全を期すためのもう 1 つの注意: 状況によって改行を指定する方法が異なります。最も注目すべきは、これがさまざまなオペレーティング システムで処理されることです。古典的な UNIX システム (したがって Linux も) は、上記の文字 ( \n, 16 進数表記で 0x10 ) を使用ます\n\r。現在の MacOSX システムも UNIX ベースですが、古い MacOS システムはまた別のものを使用していました。インターネットは伝統的に unix の土地 (unix のようなシステムの下で開発および強化されてきた) であるため、インターネット技術の多くの部分で unix のような動作が見られ、期待されています。

于 2012-11-18T12:54:26.027 に答える