P2 1.0.4に戻しました。
ってことで、投稿テスト。
最新の投稿: WordPress RSS
-
fifnel
-
fifnel
P2 1.0.3で投稿テスト。
うまくいくかな? -
fifnel
WordPress2.8+P2 1.0.5にしてから空の下書きがどこかのタイミングで投稿されるようになってしまいました。
おそらくP2でインデックスページから投稿したときに発生していると思うので、1.0.4との差分をチェックせねば‥‥ -
fifnel
WordPress2.8にアップデートしました。
libxml2のバグの対処コードはやはり入っていなかったので、以下のプラグインを入れて対応しました。
WordPress ? LibXML2 Fix ? WordPress Pluginsあと、良い機会なのでP2を最新版(1.0.5@svn)にしつつ、ReTweetボタンも付けてみました。
私のところで使ってるP2は、はてブとReTweet以外にもautopagerizeとLDRizeに対応させているんですが、需要あるんでしょうか。
GPLですし、もし欲しいって方がいれば適当にまとめてアップしますので、適当にコメントください。 -
fifnel
WordPress2.8が公開されたのでコードをチラ見してみたら、一部にlibxml2のバグ回避処理が見られました。
wp-includes/class-simplepie.phpをlibxmlで検索すると出てきますが、これだけで直るんですかねぇ‥なんか全部は対処出来なさそうな予感。いずれにせよ日本語版が出るまでインストールはせずに様子見ですが、問題がまた出るようであれば手動で対応するまでです。
libxml2バグ問題、WordPress側をなんとかして解決? ? ふぃふmemo
↓一応プラグイン版もあるようなので、使えるならこちらの方が楽かも。
WordPress ? LibXML2 Fix ? WordPress Plugins -
fifnel
WordPressのP2がこのところ更新されていたようですが、どうもうまく動きません。
見た感じ、entry.phpの各エントリー表示処理の一番最初で落ちている気がしますが、これと言ってログが出るわけでもなく、どうやって調べたもんかなーって感じです。まぁ今でも問題なく使えているので、しばらく様子見の方向で。
-
WordPressのTwitter Toolsプラグインでdaily digestが多重投稿される不具合
fifnel
twitter-toolsのdaily digestが時々二重投稿されるので、ダイジェスト投稿を止めました。
README | alexking.org二重投稿以前に、そもそもダイジェストの必要性を感じなくなってきたので止めたってのもありますが、プログラマ的に不具合を放置するのも気持ち悪いので一応ソースを軽く見てみました。
で、ざっと眺めた感じだとダイジェスト投稿処理中の排他制御が甘いのが原因な気がします。
たくさんtwitterに投稿した日に限って起こっていた現象なので、おそらくビンゴでしょう。
アクセス数の多いサイトなら3重4重投稿になる可能性もあるかもしれません。手っ取り早く修正するならnextDateFieldの更新をdo_digest_post()諸々の呼び出しより前に済ませておいて、呼び出しに失敗したら元に戻すって感じですかね。
排他制御としては穴がありますが、ここまで頻繁には起こらなくなるはずです。PHP:- function ping_digest($nextDateField, $lastDateField, $title, $defaultDuration) {
- $next = get_option($nextDateField);
- if ($next) {
- $next = $this->validateDate($next);
- $rightNow = time();
- if ($rightNow>= $next) {
- // ↓これ追加(ここでダイジェスト投稿より先に次の更新日を入れちゃう)
- update_option($nextDateField, $next + $defaultDuration);
- $start = get_option($lastDateField);
- $start = $this->validateDate($start, $rightNow - $defaultDuration);
- if ($this->do_digest_post($start, $next, $title)) {
- update_option($lastDateField, $rightNow);
- update_option($nextDateField, $next + $defaultDuration);
- } else {
- update_option($lastDateField, null);
- // ↓これも追加(ダイジェスト投稿に失敗したら前のに戻す)
- update_option($nextDateField, $next );
- }
- }
- }
- }
これでうまく動いたって方はご連絡ください(殴
-
fifnel
最近(?)ReTweetという行為が流行っているようですが、WordPressでRT出来るプラグインがありました。
今のところ入れるつもりはありませんが、もう少し興味が沸いたら入れるかもしれません。 -
fifnel
P2が今日また更新されていたのでマージしました。
バグフィックス以外にも、なんだかあちこち変更されていましたが、例によりよく分からず。
とりあえずAutopagerizeとLDRize対応だけしておきました。
というか、いい加減コメント欄のメアドにrequireと書かれているのは何とかして欲しいなぁ‥‥ -
fifnel
このサイトをAutoPagerizeとLDRizeに対応しました。
P2は上記2スクリプトと相性良いと思うんですが、オリジナルソースでは全く対応していませんし、siteinfoは書き方がよく分からなかったのでセオリー通りの対応をしてみました。まず、次へのリンクにrel="next"を付けるのがテーマのスクリプトではうまくいかないようなので、wp-includes/link-template.phpに直接書いてしまいました。
あとはP2テーマの適当なところにautopagerize_page_element、autopagerize_insert_beforeを指定すればAutopagerize対応完了。
さらにxfolkentryとtaggedlinkも追加してLDRizeの対応も完了です。
-
fifnel
現時点でのWordPress P2テーマで、完全に用件を満たしてくれるようになりました。
P2からの投稿以外はタイトルが表示され、最近の投稿には正しいタイトルが表示されます。自分で変更したのは、タイトルのタグをh2からh3に変更した点と、後はアクセス解析とはてブボタンを付けたくらいです。
-
fifnel
P2をリポジトリの最新版に差し替えました。
タイトルの表示/非表示の判定でカスタムフィールドを使わなくなったのは精神衛生上とても良いです。ただ、右側の「最近の投稿」に表示されるタイトルが、そのエントリーのID(数字)になってしまって微妙だったので適当に修正して使っています。
function.phpのprologue_the_title()がP2のtweetなのか普通の記事なのか判定するルーチンになっているので、その辺をごにょごにょしました。
説明は面倒なので省きますが、知りたい人がいればコメントでリクエストしてください。 -
fifnel
WordPressのP2テーマが今日になっていろいろとcommitされてます。
svnタイムラインを眺める限り、タイトル周りの仕様変更とか修正とかっぽい感じかな?リポジトリのURLはこちら↓
http://svn.automattic.com/wpcom-themes/p2 -
fifnel
P2の記事を編集するのって、Firefox3.1b3 for MacOSXだと固まります。
レインボーのぐるぐるが出て、強制終了するしか無くなります。
SafariやFirefox3.0.xなら大丈夫でした。
うーん。 -
fifnel
はてスタを付けようとしたけど、どうやらスターを付けるタイトルが無いエントリーが見つかった時点で、以降の処理が行われないっぽい。
まぁ、別に無理して付けることもないか‥‥。 -
今まで使ってきたWordPressにP2を入れるための改造
fifnel
WordPress ? P2 ? WordPress Themes
WordPressのテーマ「P2」の最新版(SVNから引っ張ってきたもの)には、ダッシュボードから投稿した記事はタイトルが表示されるようになるオプションが追加されています。
(SVNリポジトリはこちら http://svn.automattic.com/wpcom-themes/p2/ )これは、ダッシュボードからの投稿の際、カスタムフィールドに「display_title」を作って、それを見てタイトルを表示させる処理になっています。
私は今までの記事をそのままに導入したかったので、P2からの投稿の時にタイトルを表示しない、つまりデフォルトはタイトルを表示する、としたかったのでその辺を改造しました。
改造するファイルは2つ。
p2/functions.php
PHP:- $post_id = wp_insert_post( array(
- 'post_author' => $user_id,
- 'post_title' => $post_title,
- 'post_content' => $post_content,
- 'tags_input' => $tags,
- 'post_status' => 'publish'
- ) );
- echo $post_id? $post_id : '0';
- add_post_meta($post_id, 'p2_post', true);
- exit;
- }
- //function which_title($id) {
- // if(
- // !get_post_meta($id, 'display_title') &&
- // ( strpos($_SERVER['HTTP_REFERER'],'post-new.php' ) || strpos($_SERVER['HTTP_REFERER'],'xmlrpc.php' ) )
- // ) {
- // add_post_meta($id, 'display_title', true);
- // }
- //}
- //add_action('publish_post', 'which_title');
prologue_new_post関数のwp_insert_post()呼び出し後にp2_postをいうカスタムフィールドを追加しています。
また、display_titleカスタムフィールドの付加処理をコメントアウトしています。p2/entry.php8行目
PHP:- <?php if( get_post_meta($post->ID, 'p2_post') == false ) the_title("<h2>","</h2>"); ?>
- <h4>
- <?php the_author_posts_link(); ?>
- <span class="meta">
- <?php printf( __('%s <em>on</em> %s', 'p2'), get_the_time(), get_the_time( get_option('date_format') ) ); ?> |
- <?php comments_popup_link( '0', '1', '%' ); ?>
- | <a href="http://b.hatena.ne.jp/entry/<?php the_permalink() ?>"><img src="<?php bloginfo("wpurl"); ?>/images/parts/icon_hatena_bookmark.gif" width="16" height="12" alt="hatena button" /></a>
- <a href="http://b.hatena.ne.jp/entry/<?php the_permalink() ?>"><img src="http://b.hatena.ne.jp/entry/image/<?php the_permalink() ?>" alt="hatena count" /></a>
display_titleがtrueのときに表示となっていた処理を、p2_postがfalse(無い)時に表示としました。
ついでに、その下を上のようにすればはてブボタンを付けられます。
ただし、icon_hatena_bookmark.gifのパスははそれぞれの環境に合わせる必要があります。

