ブログ

タグ: ,

文字化け!? → ガチャガチャ情報局 休止 復活

ガチャガチャ情報局で WordPress やら プラグイン やらを更新したら
収集した情報を投稿する際に、本文が文字化けする様になってしまった。

直接フィードを読込んだ場合は問題ないので、多分何らかのバグ。

ちょっとしばらく原因が究明できるまで、休止かなあ。
便利に使っていたから残念だな。

その後の顛末!!復活!!

情報収集には Rss POST Importer というプラグインを使って、
自作した各社向けクローラーからのフィードを読込む作りになっていたのだが
ソースを追ったところ
設定画面 Download and save images locally? の設定を Yes にした場合にだけ
呼び出される download_images_locally() 関数の内部で文字化けしていたのを突き止めた。
何かのタイミングで間違って設定してしまったようだ。
設定を戻して、文字化けしなくなったことを確認。

結局 WordPress の更新とかが原因ではなかったね。疑ってごめんなさい。

タグ: ,

WordPressテーマ「Responsive」について

WordPress テーマの「Responsive」はレスポンシブだし、外観からいろいろカスタマイズできるので
企業のポータルとかは作りやすいんだけれど、トップページが固定されて記事の一覧が指定できないなど、
なかなかに癖がある。

最新の記事を出したいときは

カテゴリやタグ単位で表示するなら簡単。
サイト名/blog/category/カテゴリ名 などで呼び出してやればいい。
最新記事の一覧を出したい場合は、一旦固定ページを経由して、
固定ページ内に最新記事を表示するコードを記述する。

<?php
  $paged = get_query_var('paged');
  query_posts("posts_per_page=10&paged=$paged");
  if (have_posts()) {
    while(have_posts()) {
      the_post();
    }
  }
?>

こんな感じかな。

タグ:

WordPress に承認フローを追加するには

Revisonary プラグインが良さそう。
・インストールすると revisor(改訂者)という権限が追加される。
・revisor が修正したものはレビュー待ちになる。
・管理者が承認したものが表示される。
・承認前は前のリビジョンが表示される。
・アクションによってメール送信する機能もある。(Peter’s Collaboration E-mails とかを使わなくても良い。)

半分ぐらい日本語訳した言語ファイルを置いておくので
/plugins/revisonary/languages にアップロードして使ってください。
revisonary-ja

タグ:

Multisiteの一覧を表示する

Multisiteの一覧を表示する。

[php]
<ul>
<?php
global $wpdb, $blog_id;

$sites = wp_get_sites(array(
‘network_id’ => $wpdb->siteid,
‘public’ => null,
‘archived’ => null,
‘mature’ => null,
‘spam’ => null,
‘deleted’ => null,
‘limit’ => 100,
‘offset’ => 0,
));
foreach ($sites as $site) {
$my_name = get_blog_details($site[‘blog_id’]);
echo ‘<li><a href=”‘ . $my_name->siteurl . ‘”>’ . $my_name->blogname . ‘ (‘ . $my_name->post_count . “)</a><br />n”
. get_blog_option($my_name->blog_id, ‘blogdescription’) . “</li>n”;
}
?>
</ul>

[/php]

実行結果はここ – 左下のボックス。
※ ちなみに Multisite 設定の WordPress じゃないとハングする(笑)

参考:
wp_get_sites, get_blog_details, get_blog_option

タグ:

複数のWordPressサイトを1つのサイトから管理

WordPress を Multisite 設定で運用すると、単一ドメインのサブディレクトリかサブドメインでしか管理できない。
次に求めるのは当然、複数の異なるドメインの WordPress を1つの WordPress から管理する方法。

ManageWP

ManageWPサイトにログインして管理画面から操作する。
Wordpress には ManageWP Worker プラグインをインストールして使う。
トライアルはあるが、基本有料。また、管理情報をサイトに残すのはちょっと怖い。

InfiniteWP

サイトから InfiniteWP の管理画面をダウンロードして、PHP + MySQL 環境にインストールして使う。
Wordpress には InfiniteWP Client プラグインをインストールする。
有償のアドオンもあるが基本的な部分はフリーで使える。
難をいうと InfiniteWP管理画面が英語、ソースを見ても多言語化の対策などは見られない。

MainWP

MainWP Dashboard も MainWP Client も WordPress プラグインで構成される。
有償のアドオンもあるが基本機能はフリー。
プラグインなので、頑張れば日本語化できる。今のところ一押し。

タグ: ,

WordPress を MultiSite で動かす

wordpress-multisite-network1WordPress をマルチサイトで動かすと、一つの WordPress エンジンで、複数のサイトが運営できる。

設定手順

  1. wp-config.php を開いて、”編集が必要なのはここまでです” の前ぐらいに define(‘WP_ALLOW_MULTISITE’, true); を追記する。
  2. 管理画面で「ツール」→「ネットワークの設定」が新しく追加されるので、必要な情報を入れてインストール。
  3. wp-config.php と .htaccess を修正しろと指示がでるのでその通りに直す。
    wp-config.php
    [php]
    define(‘MULTISITE’, true);
    define(‘SUBDOMAIN_INSTALL’, false);
    define(‘DOMAIN_CURRENT_SITE’, ‘サイトのIPアドレス’);
    define(‘PATH_CURRENT_SITE’, ‘/サイトのサブディレクトリ/’);
    define(‘SITE_ID_CURRENT_SITE’, 1);
    define(‘BLOG_ID_CURRENT_SITE’, 1);
    [/php]
    .htaccess
    [shell]
    RewriteEngine On
    RewriteBase /wp/
    RewriteRule ^index\.php$ – [L]

    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ – [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
    [/shell]

  4. ログインし直すと、上のメニューに「参加サイト」 ができている。
    「サイトネットワーク管理者」で設定するのがサイト全体の設定。
    各々のサイトの情報は個別のサイトのダッシュボードで設定する。
    ここら辺が混同しやすので注意。

後は、サイトを追加していく。

  • テーマ、プラグインについては予めサイトネットワーク管理者がインストールしたものしか使えない。
  • プラグインをネットワークで有効にしておくと、各々のサイトで最初からプラグインが有効にされ、サイトからは見えなくなる。
  • 情報は同じデータベースに、プリフィックス_サイトID_テーブル名 という形で保持される。

これを究極につきつめると WordPress.com の様になるわけだな。なるほど。

ただし、自分一人でマルチサイトを使う分には問題ないが、他の人にも開放する場合は、インストールするプラグインにはかなり気を使う必要がありそう。

タグ: ,