2015.01.31

WordPressカスタマイズ(最近のコメントと最近の記事)

WordPresssのテーマに「小粋空間」提供のkoikikukan3を採用したことを先に書いたが、Wordpressでは、サイドパネルの表示要素をWidgetとして、自由に選択できるので便利であり、style.cssで背景画などを設定し直せば、概ね所望のデザインができるが、標準のwidgetで気に入らなければ、カスタマイズすることになる。

(1) 最近のコメント

サイドパネルの最近のコメントリストは、単純に投稿されたコメントが投稿者名とともに、降順で表示される。
しかし、同じ記事に対するコメント表示で、記事タイトルが毎回表示されるのは煩わしいので、記事が変わった時のみタイトルを表示し同一記事に対しての2つ目以降は、投稿者名のみ表示することとした。 下記がそのphpスクリプトである。

<ul>
<div id="widget-container"><h2 class="widget-title">最近のコメント</h2><ul id="recentcomments">
<?php
$title = ""; $pretitle = "xxx";
$comments = get_comments(array(
    'status' => 'approve',
    'number' => 100
));
foreach($comments as $comment):
$post = get_post($comment-> comment_post_ID);
    ob_start();
    the_title();
    $title = ob_get_contents();          //出力されるはずだったタイトルを取得
    ob_end_clean();
    ob_start();
    the_permalink();
    $pmlink = ob_get_contents();        //出力されるはずだったリンク先を取得
    ob_end_clean();

if($title != $pretitle){
  $pretitle = $title;
  echo "<li><a href=\"$pmlink#comments\">$title</a></li>\n";
}?>
   <p><?php comment_author_link(); ?>(<?php comment_date('Y/m/d'); ?>)</p>
<?php endforeach; ?>
</ul>

(2) 最近の投稿

標準のwidgetで提供される最近の投稿の表示では、多くの記事を表示すると行数が多くなるので、プルダウンにしたいと考えた。
wordpressが提供する wp_get_archives という関数はプルダウンにする機能を備えている。 format=optionを指定するだけで、<option>と</option>で挟んで出力され、そのままプルダウンを構成できる。
合わせて、総投稿記事数も表示したいと考え、それをカウントするスクリプトもプルダウン表示先立ちに追加した。

<div id="widget-container"><h2>最近の投稿</h2>
<?php $numposts = $wpdb->get_var("SELECT count(5) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'");
if ($numposts > 0)
     $numposts = number_format($numposts);          // 記事総数の取得
?>
<spn> <a href="<?php echo get_option('siteurl'); ?>/?page_id=277">記事一覧</a><?php echo "<small> (総記事数:$numposts)\n"; ?></small>
</span>
     <div class="postsel">  
    <select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'>
             <option value=""><?php echo attribute_escape(__('記事を選択')); ?></option>
               <?php wp_get_archives('type=postbypost&limit=200&format=option'); ?>
          </select>
   </div>
</div>
  <?php if ( ! dynamic_sidebar( 'secondary-widget-area' ) ) : ?>
<?php endif; ?>

ブログの作成(wordpress)

wordpressでは複数のブログの作成ができるが、それは後で追加するとして、まず一つ目のブログを作成する。

ログインできたら、外観 → テーマとたどって、気にいったテーマを選ぶことになるが、テーマは後からでも自由に変更できるので、気に入ったものが無くてもとりあえず何かを選んで作業を進める。
テーマを選んだら、次にプラグインの新規追加で、Movable Type and TypePad Importer
とwordpress Importerを入れておく。
次に、Movabletypeのブログからエクスポートでおいたファイルをツール → インポートとたどりMovable Type and TypePadをクリックして、インポートする。
インポートすれば、サイトを表示で直ぐに結果を見ることができる。MTのように構築する必要もなく、直ちに見られるのがうれしい。
ネットで探して、気に入ったテーマが見つかれば、それを新規追加して切り替えれば終わりだが、なかなか気に入ったものが見つからず、結局「小粋空間」で出しているwordpressのテーマのkoikikukan3を入れて、自分好みにカスタマイズした。

MovabletypeからWordPressへ

長い間(10年以上)、幾度かの版数アップとカスタマイズを行いながら使い続けてきたブログエンジンのMovvabletypeを中止して、Wordpressに乗り換えた。
乗り換えの最大の理由は、自宅のサーバーを止めてレンタルサーバーに移行したが、MTの再構築で度々タイムアウトのエラーが出て、色々と手を尽くしたが、改善は出来ても完全に解決できなかったこと。うまく行った場合も再構築に時間がかかり嫌気が射してきたことによる。
インストールは簡単で、wordpress-4.1-ja.zipを解凍して出てきたwordpressのフォールダーそのままサーバーに放り込むだけである。
そして、wp-config-sample.phpをwp-config.phpに名前を変え、中身を以下のように編集する。

define('DB_NAME', 'abcd-db');     ← mysqlで作ったDBの名前を入れる。

/** MySQL database username */
define('DB_USER', 'xyz');     ← mysqlで作ったDBのユーザー名を入れる。

/** MySQL database password */
define('DB_PASSWORD', 'xxxxx'); ← mysqlで作ったDBのパスワードを入れる。

define('WPLANG', 'ja');     ← wordpress-4.1-jaでは、この行は存在しなかった。
                  ないとプラグインで日本語化されないものがある。

次に、wordpressディレクトリーに.htaccessファイルを作り、以下の内容を書いておく。
Mysql, phpがUTF-8になるようにの設定されていて、index.phpがdefaultのアクセスファイルになっていれば、記述は不要と思われるが、おまじないと思って書いておく。

DirectoryIndex index.html index.cgi index.php index.shtml
php_flag mbstring.encoding_translation off
php_value default_charset "UTF-8"

なお、Apacheの設定で、.htaccessが有効で、ディレクトリーのAllowOverride NoneをNone → Allとしておく必要がある。これを行わないとパーマリンクの設定が出来なくなる。

<Directory /usr/www/>  ← システムにより異なる
        Options Indexes FollowSymLinks
        AllowOverride None   → AllowOverride All
        Require all granted
</Directory>

あとは、ブラウザでwordpressのディレクトリーにアクセスすれば、ユーザ名、パスワード、メールアドレスを入れる画面となるので、これを記入して保存すれば、ログイン画面に切り替わる。 ここで、あらためてログインして、作業を続けることとなる。

Movabletypeでは、perlのライブラリーをこれでもかと思うぐらい入れる必要があったが、wordpressでは、phpからmysqlが使えるようにphp5-mysqlを入れ忘れないようにするぐらいである。実に簡単である。

2014.05.28

puppy linuxのprecise 5.7.1でプリンターの設定

puppy linuxのprecise 5.7.1をインストールして、無線LANの設定に続いてプリンターの接続設定を行った。
私のプリンターは、BrotherのDCP-J925Nであるが、Brotherのホームページから「サポート」→ 「OS対応状況」」→ 「Linux」→ 「プリンター」→ 「簡易インストル」とたどると、簡易インストール方法が書いてあるので、その通りに作業したがプリンターが動かないばかりかPuppy Linuxの動作までおかしくなってしまった。
precisesavexxxx.4fsを保存してあったので、これで上書きして元の状態に戻してやり直した。
「簡易インストール」を諦めて「CUPS用」を読むと、/var/spool/lpdがなければ、mkdir /var/spool/lpdで作成と書かれていたので、GUIで/var/spoolに移動してマウス右クリックでディレクトリーの新規作成でlpdを作成した。
次にホームページからソフトウェアーダウンロードのページを選んで「インクジェットプリンター・複合機」→「DCP-J925N」→「Linux」→「Linux(deb)」でLPR プリンタードライバー (deb package)のdcpj925nlpr-3.0.1-1.i386.debとCUPSwrapper プリンタードライバー (deb package)のdcpj925ncupswrapper-3.0.0-1.i386.debダウンロードする。
そして、プリンタードライバーファイルをワンクリックし、続いてCUPSドライバーをワンクリックすれば、インストールは終了である。
そこで、ブラウザを立ち上げてURL欄にlocalhost:631と入力してCUPSの管理画面を開く。
プリンター表示画面を見ると接続先がUSBになっていた(下図)。
print01.png
私のところは、無線LAN接続なので、プリンターの変更を選び、AppSocket/HP JetDirectを選ぶ(下図)。
print02.png
残念ながら図を撮りそこねたが、入力ウィンドウが現れるので
soket://(プリンターのURL)を入力する、ちなみに私のところではsocket://192.168.1.10である。
次に開いたページで「このプリンターを共有する」にチェックを入れて、続けるを押す。プリンター共有としたのは、googleクラウドプリントを試すためである。
print03.png
接続がsocket://(プリンターのURL)で、現在のドライバーが正しいことをチェックして「プリンターの変更」ボタンを押せば完了である。
print04.png
最後の管理画面の「メンテナンス」でテストプリントして正しく出れば終わりである。
その後、LibreOfficeで画像が貼り付けられた文章を使って両面印刷を試してみたが、問題なく印字された。ただし、最初印刷スタートボタンを押したとき、一瞬プリンターが起動できないのメッセージが出たが正常に印字され、その後はメッセージも出なくなって問題なく使用可能となった。

2014.05.02

puppy linuxのprecise 5.7.1で無線LANの設定

久しぶりに、puppy linuxのprecise 5.7.1をインストールした。
precise-571JPがリリースされたので、日本語化されたものが容易にインストールできたが、いつも問題の無線LANアダプターの認識が一苦労したので、以下に書いておくことにした。
無線LANアダプターは、Buffaronoのwli-uc-gnpであるが、以前に書いたubuntu / PuppyでUSB無線LANドライバーのコンパイルの通りにコンパイルしようとしても、うまくコンパイルできなかった。
そこで、以下の方法を試み、無事接続できた。
(1) wli-uc-gnp.confの名前のファイルを作り、下記の内容を書き込んで/etc/modprobe.d
  に入れた。

install rt2800usb /sbin/modprobe --ignore-install rt2800usb; /bin/echo "0411 019e" > /sys/bus/usb/drivers/rt2800usb/new_id

(2) 次にメニューのシステムからBoot Managerを選び、新たなモジュールを追加をクリック
  する。
bootmgr01.png
(3) 開いたウインドウで、「新たにもジュルを追加するには」のボタンを押す。
bootmgr02.png
(4) 開いたブトマネージャーモジュールリストでrt2800usbを選んで”add”ボタンを押して
  モジュール(rt2800usb)を右ベインに移し、OKボタンを押す。
bootmgr03.png
ここで、再起動すると無線LANの設定で”wlan0″が現れるので、設定して終わりである。

« Previous | Next »