yujilogさんのページで公開・配布されているWp-Mixipublisher 1.0.0 RC2ですが、wordpress上でリンクにhrefオプション以外にtargetオプションやtitleオプションを付けるとmixiにリンクがうまく貼れないという場合がありました。
そこで、少しソースコードの方を調整してみましたので投稿のテストも合わせて修正部分を公開してみます。
尚、ソースコードの修正やそれに伴う不具合等は自己責任でよろしくお願いします、万が一の為に元のファイルはバックアップしておいてください。
今回の修正してみた部分ですが、
- hrefオプションの前にtargetオプション等が有る場合もリンクを抽出できるように改変
- オプションの引用符が「”」(ダブルクォーテーション)ではなく、「’」(シングルクォーテーション)の場合もリンクを抽出できるように改変
- hrefオプションの値が空の場合(href=”” mce_href=””とhref=”の場合)、アンカータグ内のコンテンツのみを表示するように改変
となっています。
実際の修正箇所ですが、Wp-Mixipublisherのフォルダにある「wp-mixibulisher.php」の134行目から始まる、
$content = preg_replace_callback(
'/<a\s+href="([^"]+)"[^<:>]*>((?:(?!<:\/a>).)+)<\/a>/', create_function(
'$matches',
'$matches[1] = strpos($matches[1], "/") === 0 ? get_settings("siteurl").$matches[1] : $matches[1];'.
'return $matches[1] == trim($matches[2]) ? $matches[2] : $matches[2]."(".$matches[1].")";'
), $content);
という部分を、
$content = preg_replace_callback(
'/<a[^<>]+href=["|\']([^"|~\']*)["|\'][^<:>]*>((?:(?!<\/a>).)+)<\/a>/', create_function(
'$matches',
'$matches[1] = strpos($matches[1], "/") === 0 ? get_settings("siteurl").$matches[1] : $matches[1];'.
'if(empty($matches[1])){
return $matches[2];
}else{
return $matches[1] == trim($matches[2]) ? $matches[2] : $matches[2]."(".$matches[1].")"; }')
, $content);
へ書き換えて、アップロードしてください。
またこの変更で不具合などがありましたらコメントに投稿してください。
[10.24] 一部ソースコードのエンティティが間違っておりました。
はじめまして。記事を読んで参考にさせていただきました。
僕の場合、動作しない原因がまた違うのかもしれませんが、
管理画面ではID・PASSを認識していて設定はできるのに、
投稿してみてMIXIの日記が何の反応もないのです。
MIXIでの設定もミクシィ日記に設定してありますし、
新規投稿時にもチェックボタンをONにしてあります。
何か原因とか分かりましたら教えてほしいのです。
hyroxさんはじめまして。コメントありがとうございます。
hyroxさんのブログも拝見させて頂きましたが、mixiPublisherの方は一時断念してmixiへはフィードでの利用ということで一旦解決されたようですが、正直僕の方では解決策はちょっとわからないです。これについては配布元のyujilogさんの方へ動作環境等(WordPressのバージョンやPHPのバージョン)を添えてご報告していただいた方が良いかと思います。
このプラグイン自体もまだ正式版にはなっていないものなので、不具合や改良の余地がたくさんある物だと思います。実際に安定して利用するのなら正式版のリリースを待ったほうが良いかもしれませんね。
正直僕がわかる事はこのくらいなので、お役に立てなかったかと思いますが、またこのサイトを立ち寄った時にはコメントでも何でもよろしくお願いします。
またhyroxさんもご自身のblogでWordPressの記事をたくさん書かれているようなので、今後参考にさせて頂きたいと思います。
ご丁寧にどうもありがとうございました。
そうですね。現在は他にもカスタマイズする事などたくさんありますのでニューバージョンが出るまで待っておくことにしました。
僕はシステムの知識がほとんどないのでお役に立てるか分からないブログですがl、wp-tegakiをインストールするところはかなりがんばりましたけど笑