カテゴリー
wordpress

mixi OpenIDを使ったコメント欄を作る

mixi OpenIDを使って、mixiにアカウントがある人なら名前やURLをmixiから取得して簡単にコメントを送信できる機能を実装する。

参考にしたページは次のとおり。

最初、https://id.mixi.jp/nnn は使えるけど https://mixi.jp/ は使えないということに悩んだが、どうやらOpenIDプラグインに内包されているphp-openidモジュールがだめだったらしく、portsからsecurity/php-Auth_OpenID2をインストールしたら直った。

さて、プラグインをインストールしただけでは、ただ単に普通のコメント欄でOpenIDが使えるだけなので、専用のフォームを用意する。テーマのcomments.phpの出したい位置に以下を記述。


<form class="post" method="post" action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" id="commentsForm">
<fieldset>
<legend>コメントフォーム For mixiユーザー</legend>
<div>
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
<input type="hidden" name="openid_identifier" id="openid_identifier" value="https://mixi.jp/"/>
<input type="hidden" class="inputField" id="comment-author" name="author" value="test" />
<input type="hidden" class="inputField" id="comment-email" name="email" value="foo@example.com" />
<input type="hidden" id="login_with_openid" name="login_with_openid" value="checked" />
</div>
<dl>
<dt><label for="comment-text"><?php if ( allowed_tags() ) : ?><span>
<?php _e('You can use some <abbr title="Hyper Text Markup Language">HTML</abbr> tags for decorating.', 'vicuna'); ?>
</span><?php else : ?><span>
<?php _e('You cannot use <abbr title="Hyper Text Markup Language">HTML</abbr> tags', 'vicuna'); ?>
</span><?php endif; ?></label></dt>
<dd><textarea name="comment" id="comment" cols="50" rows="8"></textarea>
</dl>
<div class="action">
<input name="submit" type="submit" id="submit" tabindex="5" value="mixiで認証して送信">
</div>
</fieldset>
</form>

これで、この記事の下にあるような「コメントフォーム For mixiユーザー」が出来上がり、ボタン1つで気軽にコメントが送れるようになった。

ということで、mixiユーザーは試しにコメントしてみてくれるとうれしいかも。

カテゴリー
wordpress

今日やったWordPress作業

その1:
Google AdSense導入。導入はプラグインで。参考にしたのはGoogle Adsense のWordPressプラグイン導入方法(MEKEKEMORA)「このページにアクセスするための十分なアクセス権がありません」と表示される場合の対処方法

その2:
記事個別ページの上部のパンくずリンクが「Home > カテゴリ > タイトル」だったのだが、うちはあくまで日記なので「Home > 日付 > タイトル」とした。カテゴリへのリンクを表示しているところを以下のように変更して日付と日付リンクに。


<?php
$year = get_the_time('Y');
$month = get_the_time('m');
$day = get_the_time('d');
$url = get_day_link($year, $month, $day);
$text = the_date('Y-m-d (D)', '', '', false);
echo get_archives_link($url, $text, $format, $before, $after);
?>