Home » ブログ
検索・リンク
ブログ  ブログ以外
最近の記事
Amazon

‘WordPress’ カテゴリーのアーカイブ

2009 年 9 月 9 日

トラックバックスパムに悩む

又、最近、海外からのトラックバックスパムのアクセスが多くなってきた。proxyを経由しているようでIPの特定は無理なようだ。(日本以外は拒否する手もあるが...)

WordPressでブログを作成しているので一括、コメント、トラックバック中止だ。暫定対応!

update `wp_posts` set comment_status ="closed",ping_status="closed"

これで、コメント、トラックバックで一括閉鎖だ。
※IPアドレスみて日本以外のIPはコメント、トラックバックを閉鎖するようにプログラム改変するのもひとつの方法かな。

2008 年 10 月 28 日

WordPressIntegrator経由でWordPressとMODxのsitemapを作成する。

当サイトはWordPressIntegratorを使用して、MODxにWordPressのブログを表示させている。
MODxでMODx本体の記事のsitemapを作成していたが、WordPressのsitemapもマージするように修正した。
WordPressのsitemapはプラグイン「google-sitemap-generator」を使用している。
簡単な対応概要は以下

  1. google-sitemap-generator
    sitemap.phpに以下を追加する。

    function CallMODxSitemap() {
        if(GoogleSitemapGeneratorLoader::LoadPlugin()) {
        $gs = GoogleSitemapGenerator::GetInstance();
        $gs->MODxSitemap();
        }
    }
    if(defined('ABSPATH') && defined('WPINC')) {
         add_action("modxsitemap",
         array("GoogleSitemapGeneratorLoader","CallMODxSitemap"),1000,0);
    }

    sitemap-core.phpに以下を追加する

    function MODxSitemap() {
        BuildSitemap()でsitemapを作成している処理を真似て、sitemap出力をechoする処理
    を編集する
    }
  2. wordpressintegrator修正
    以下をwordpressintegratorのスニペットに以下を追加する

    if ($block=='sitemap') {
        do_action('modxsitemap');
        return;
    }
  3. sitemaps作成ドキュメント
    [[Ditto? &parents=`0` &showInMenuOnly=`1` &depth=`10` &display=`all` &sortBy=`menuindex` &sortDir=`ASC` &format=`html` &tpl=`Sitemapc` &language=`english`]]
    [!WordPressIntegrator?block=sitemap!]
    
    Sitemapc(チャンク)
    <url>
        <loc>[+url+]</loc>
        <lastmod>[+editedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
      </url>

尚、上記は簡単な概要だが、以下の対応が別途必要

  • wordpressのブログのトップページとMODxのブログドキュメントのページが重複する。どちらかひとつしか出力しないようにする。
  • google-sitemap-generatorでpinを飛ばす処理がある。MODx側のアドレスに変換する等の処置をいれたほうが良い。
  • wordpress側とMODxではURLが違う。
    例えば、
    wordpress:wp_blog/?p=49
    MODx:test.html?p=49
    どちらでもアクセスは可能だが、リダイレクトされないMODx側に合わせたほうが良い。
2008 年 10 月 10 日

WordPress2.6.1から画像のsrcやhrefが簡単に修正でき相対パスへの修正も簡単だ

WordPress2.5.1の付属のTinyMCEを使用していたが、メディアを取り組む時に絶対アドレスで取り込まれていて、面倒くさいので相対パスにはしていなかった。

ところが、2.6.1(今は2.6.2も可能らしい)をインストールしたら、画像に上をクリックすると編集画面が開くようになっていた。

赤の部分をクリック


HTML形式で開かなくても簡単にhrefもsrcも修正できる。
相対パスにするとTinymce上、画像は表示できないが...

2008 年 10 月 9 日

WordPressのDBのインポートデータをドメインが違う環境でそのまま使用したら管理画面がインポート元へリダイレクトされた

公開サーバがクラッシュした時のために、MODxとWordPress(2.6.1)のデータが入っているDBをエクスポートした。
エクスポートしたデータを公開サーバと違うlocal環境のDBにインポートし直した。
local環境のWordPressがインストールされているwp-config.phpのDB欄の記述はlocalのDBが設定されている。
しかし、local環境のWordPressの管理をブラウザで指定すると公開サーバへリダイレクトされる。
http://localhost/wp/wp-admin/→http://公開サーバドメイン/wp/wp-admin/

http://duo266.tetsuserver.com/wordpress26/wp-login.php?redirect_to=%2Fwordpresstest%2Fwp-admin%2Foptions-general.php%3Fupdated%3Dtrue

記事を表示する画面は公開サーバという認識はあったが、管理画面はあくまでもlocalのDBの内容を表示するものだと思っていた。この管理画面でWordPressのurlを修正していたら、公開サーバの異変に気づき、問題を把握した。
DBの内容を調べた。

localアドレスで管理画面を指定してもxx_optinsテーブルのsiteurlの値へ向かって管理画面もリダイレクトされる。
リダイレクトされた後はlocalのDBは見ていない。
リモート接続のためにこのような仕様になっているのだと思うが、今後は注意しないと...

2008 年 10 月 2 日

WordPressintegrator経由のブログのサイトマップがリダイレクトされる

当サイトはMODxでWordPressintegrator経由でWordPressのブログを表示している。
WordPressのsitemapはWordPressのプラグインを使用して作成していた。
できたsitemap.xmlをそのままサイト登録に使用していたのだが、NGらしい。
理由は、全部リダイレクトされるからだ。

Wordpressのリンクは
http://linux.enegai.jp/modx/wp_blog/?p=8
MODxでは
http://linux.enegai.jp/modx/wp_blog.html?p=8
でリダイレクトされる。

※Wordpressのurlは「wp_blog」で登録。MODxではフレンドリで「wp_blog.html」がドキュメントエイリアス。
盲点であった。
sitemap.xmlだけでなく、feedも同様だ。
同じく、WordPress経由で表示しているブログリンクはすべて対象だ。
最悪のやり方だけど、worpressの
link-template.php
category-template.php
にパッチをかけて対応した。
MODxで変換をかけるもの作らないといけない。課題だ!

2008 年 10 月 1 日

WordPressIntegratorでWordPressのブログタイトルをだす

当サイトはMODxを本文のベースとし、WordPressIntegratorでWordPressのブログを表示しているが大きな失敗に気づいた。
どのブログもタイトル文が同じなのだ。
WordPressIntegratorを使用するとsidebarやブログ本文、一部の変数を利用することができる。
WordPressIntegratorからそのままに利用できる関数は、
get_header()
get_footer()
get_sidebar()
である。
この関数の呼び出しもとのthemesはMODx用に作成してある。
get_header()を以下のように修正した。

<?php wp_title(); ?>

また、WordPressIntegratorのスニペットに以下を追加

if ($block=='title') {
get_header();
return;
}

MODxのテンプレートのタイトルの箇所を

<title>e願い | [∗pagetitle∗] [∗WordpressTitle∗]</title>

とし、Wordpresを呼び出す時のみ
[∗WordpressTitle∗]に

[!WordPressIntegrator?block=title!]

を設定した。
これで、ブログそれぞれにタイトルがつくようになった。
※追記
今まで何回もtryしても表示されなかった[+wp_pagetitle+]が、上やってから表示されるようになった。
ぐすん!
これが、最適なやり方です。[+wp_pagetitle+]をヘッダーにいれます。

2008 年 9 月 24 日

MODx+WordPressでLinuxの環境設定簡易メモを公開します

MODxとWordPressでホームページを作成してみました。
ホームページの内容は、fedoraとubuntuの環境構築を手順に関しての簡易説明です。

△ページトップ

Google
ページ
最近のブログ
アーカイブ
カテゴリー
最近のコメント
最近のトラックバック
    No Responses.