0

ファイルrobots.txtを更新するか、まだ存在しない場合は作成する機能を備えたWordpress用のプラグインを作成しています。

これまでのところ、私はこの機能を持っています:

function roots_robots() {

  echo "Disallow: /cgi-bin\n";
  echo "Disallow: /wp-admin\n";
  echo "Disallow: /wp-includes\n";
  echo "Disallow: /wp-content/plugins\n";
  echo "Disallow: /plugins\n";
  echo "Disallow: /wp-content/cache\n";
  echo "Disallow: /wp-content/themes\n";
  echo "Disallow: /trackback\n";
  echo "Disallow: /feed\n";
  echo "Disallow: /comments\n";
  echo "Disallow: /category/*/*\n";
  echo "Disallow: */trackback\n";
  echo "Disallow: */feed\n";
  echo "Disallow: */comments\n";
  echo "Disallow: /*?*\n";
  echo "Disallow: /*?\n";
  echo "Allow: /wp-content/uploads\n";
  echo "Allow: /assets\n";
  echo "\n";
}

add_action('do_robots', 'roots_robots');

ファイル robots.txt が更新されていません。何か忘れていませんか? また、ファイルが存在するかどうか、およびファイルを作成していないかどうかを最初に確認する方法はありますか?

プラグイン kb-robots から何かを見つけましたが、関数に追加する方法が 100% わかりません..

function kb_robotstxt(){
    # this is to make it work for demos and testing. Without this, plugin would only act when robots.txt is in a valid place. With this, it will act whenever robots.txt is appended to blog URL
    # (even if blog is in a subdirectory)
    $request = str_replace( get_bloginfo('url'), '', 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] );

    if ( (get_bloginfo('url').'/robots.txt' != 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) && ('/robots.txt' != $_SERVER['REQUEST_URI']) && ('robots.txt' != $_SERVER['REQUEST_URI']) )
        return;     // checking whether they're requesting robots.txt

    $robotstxt = get_option('kb_robotstxt');

    if ( !$robotstxt)
        return;

    header('Content-type: text/plain');
    print $robotstxt;
    die;
}

ありがとう!

4

1 に答える 1

1

データをブラウザに出力するのではなく、ファイルに保存する必要があります。file_put_contentsを確認してください。ファイルが Web サーバーによって書き込み可能であることも確認する必要があります。

于 2012-07-14T23:14:34.027 に答える