Themify WordPress Themes

Category

WordPressのページタイトルをいじりたい

URLパラメータとして ?keyword=hogehoge が指定されたら、ページタイトルにそのパラメータを追加するということをやってみました。 function.phpの中で、wp_titleをhookしてあげればいいようです。
function yk_title_filter($title, $sep, $seplocation) {
    // If it's a item_search page                                                                                  
    if (isset($_GET['keyword'])) {
        if ('right' == $seplocation) {
            $title = $_GET['keyword'] .	" $sep " . $title;
	} else {
            $title = $title . " $sep " . $_GET['keyword'];
	}
    }

    return $title;
}
add_filter('wp_title', 'yk_title_filter', 10, 3);

http://r.hatena.ne.jp/rpc could not be pinged. Error message: "transport error - HTTP status code was not 200"

http://r.hatena.ne.jp/rpc could not be pinged. Error message: "transport error - HTTP status code was not 200"
サービス終了のお知らせ

http://hamo-search.com/ping.php could not be pinged. Error message: "transport error - HTTP status code was not 200"

http://hamo-search.com/ping.php could not be pinged. Error message: "transport error - HTTP status code was not 200"
HARMONY SEARCHにつきまして5/6にサービスを終了いたしました。 今までのご利用ありがとうございました。
ということで、サービス終了ですので、エントリーを削除しました。

http://ping.ask.jp/xmlrpc.m could not be pinged. Error message: "transport error - could not open socket"

http://ping.ask.jp/xmlrpc.m could not be pinged. Error message: "transport error - could not open socket"
どうやらpingサーバーは廃止されているようです。 sitemapは受け付けているようなので、そちらで代用することにしました。
http://submissions.ask.com/ping?sitemap=http%3A//www.the URL of your sitemap here.xml

http://blog.goo.ne.jp/XMLRPC could not be pinged. Error message: "transport error - HTTP status code was not 200"

http://blog.goo.ne.jp/XMLRPC could not be pinged. Error message: "transport error - HTTP status code was not 200"
PingのUser-Agentを以下のように変更することで、成功するようになります。 私はWordPress Ping Optimizerを使っているので、以下のファイルを編集します。 cbnet-ping-optimizer.php
$client->useragent .= ' lumiukkoblog/1.0.0';
結果は以下の通り。
http://blog.goo.ne.jp/XMLRPC was successfully pinged
WordPressは嫌われているらしい;;

http://ping.bloggers.jp/rpc/ could not be pinged. Error message: "parse error. not well formed"

http://ping.bloggers.jp/rpc/ could not be pinged. Error message: "parse error. not well formed"
サービス終了のようです。 エントリーを削除。

CLICKYのAPIを使って逆アクセスリンクを作る

CLICKY web analyticsのAPIを使って、逆アクセスリンクを作ってみます。 詳細は、HELP->API->Analytics APIに書いてあります。
<?php
// prereq                                                                                                        
require 'scrape_func.php';
mb_language("Japanese");

// parameters                                                                                                    
$base_url = 'http://api.getclicky.com/api/stats/4';
$params['site_id'] = '99999999';
$params['sitekey'] = 'XXXXXXXXXXXXXXXX';
$params['type'] = 'links';
$params['output'] = 'xml';
$params['limit'] = 5;
$params['date'] = 'last-7-days';

// canonical string                                                                                              
$canonical_string = '';
foreach ($params as $k => $v) {
    $canonical_string .= '&' . $k . '=' . $v;
}
$canonical_string = substr($canonical_string, 1);

// make request                                                                                                  
$request = $base_url . '?' . $canonical_string;
//print_r($request);                                                                                             

// catch the response                                                                                            
$response = file_get_contents($request);
$xml = simplexml_load_string($response);
?>
<ul class="recentcomments">
<?php
for ($rank = 0; $rank < 5; $rank++) :
    $item = $xml->type->date->item[$rank];
//    var_dump($item);                                                                                           
    if (empty($item)) break;
    $url = $item->url;
    $contents = getURL($url);
    $contents = mb_convert_encoding($contents, "UTF-8", "auto");
    $contents = cleanString($contents);
    $title = getElement("title", $contents);
?>
<li class="recentcomments">
      <a href="<?php echo $url; ?>" class="url"><?php echo $rank+1;?>位 <?php echo $title; ?></a>
</li>
<?php
endfor
?>
</ul>
Clickyはスパイなど機能も充実していてお気に入りの分析サービスです。

WordPress: タグ入力の際にエンターキーで入力してしまう

WordPressのタグ入力の際に、エンターキーを押すと変換を確定するのと同時にタグも確定して入力してしまう。 それを回避するには、/wp-admin/js/post.jsの.keyupを.keypressに変換する。

記事に画像を連続して挿入できるようにする

記事に画像を追加する度に、メディア挿入の画面が閉じてしまうので、非常に効率が悪いです。

メディアアップロードを別ウィンドウに

/wp-admin/includes/media.php
        echo '<a href="' . esc_url( get_upload_iframe_src() ) . '" class="thickbox add_media" id="' . esc_attr( $editor_id ) . '-add_media" title="' . esc_attr__( 'Add Media' ) . '" onclick="return false;">' . sprintf( $context, $img ) . '</a>';
    echo "<a href=\"javascript:w=window.open('" . str_replace('TB_iframe=1', 'TB_iframe=0', esc_url(get_upload_iframe_src())) . "','','scrollbars=yes,Width=650,Height=700,top=0,left=0');w.focus();\" id=\"add_image\" title='" . esc_attr__('Add Media') . "' onclick='return true;'><img src='images/media-button-image.gif' alt='' /></a>";
もしくはこっちでもいいかもしれません。
        echo '<a href="' . esc_url( get_upload_iframe_src() ) . '" class="thickbox add_media" id="' . esc_attr( $editor_id ) . '-add_media" title="' . esc_attr__( 'Add Media' ) . '" onclick="return false;">' . sprintf( $context, $img ) . '</a>';
    echo "<a href=\"javascript:w=window.open('" . esc_url(get_upload_iframe_src()) . "','','scrollbars=yes,Width=650,Height=700,top=0,left=0');w.focus();\" id=\"add_image\" title='" . esc_attr__('Add Media') . "' onclick='return true;'><img src='images/media-button-image.gif' alt='' /></a>";

挿入した後に戻る

私は、Custom Field Templateプラグインを使用しているため、media_send_to_editorがフックされています。 そのため、修正するのは/wp-content/plugins/custom-field-template/custom-field-template.phpとなります。
        function media_send_to_custom_field($html) {
                $out =  '<script type="text/javascript">' . "\n" .
                                        '       /* <![CDATA[ */' . "\n" .
                                        '       var win = window.dialogArguments || opener || parent || top;' . "\n" .
                                        '   if ( typeof win.send_to_custom_field == "function" ) ' . "\n" .
                                        '           win.send_to_custom_field("' . addslashes($html) . '");' . "\n" .
                                        '   else ' . "\n" .
                                        '       win.send_to_editor("' . addslashes($html) . '");' . "\n" .
                    '   history.back();' . "\n" .
                                        '/* ]]> */' . "\n" .
                                        '</script>' . "\n";

                echo $out;
                exit();
history.back();を追加するということですね。 Good Luck!

APCインストールと設定

前提モジュールをインストール。
# yum -y install php53u-devel httpd-devel
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * epel: ftp.iij.ad.jp
 * ius: mirror.sothatswhy.org.uk
 * sl: ftp.riken.jp
 * sl-security: ftp.riken.jp
99 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd-devel.x86_64 0:2.2.15-15.sl6.1 will be installed
--> Processing Dependency: apr-util-devel for package: httpd-devel-2.2.15-15.sl6.1.x86_64
--> Processing Dependency: apr-devel for package: httpd-devel-2.2.15-15.sl6.1.x86_64
---> Package php53u-devel.x86_64 0:5.3.10-1.ius.el6 will be installed
--> Running transaction check
---> Package apr-devel.x86_64 0:1.3.9-3.el6_1.2 will be installed
---> Package apr-util-devel.x86_64 0:1.3.9-3.el6_0.1 will be installed
--> Processing Dependency: openldap-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
--> Processing Dependency: db4-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
--> Processing Dependency: expat-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
--> Running transaction check
---> Package db4-devel.x86_64 0:4.7.25-16.el6 will be installed
--> Processing Dependency: db4-cxx = 4.7.25-16.el6 for package: db4-devel-4.7.25-16.el6.x86_64
--> Processing Dependency: libdb_cxx-4.7.so()(64bit) for package: db4-devel-4.7.25-16.el6.x86_64
---> Package expat-devel.x86_64 0:2.0.1-9.1.el6 will be installed
---> Package openldap-devel.x86_64 0:2.4.23-20.el6 will be installed
--> Processing Dependency: cyrus-sasl-devel >= 2.1 for package: openldap-devel-2.4.23-20.el6.x86_64
--> Running transaction check
---> Package cyrus-sasl-devel.x86_64 0:2.1.23-13.el6 will be installed
---> Package db4-cxx.x86_64 0:4.7.25-16.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================
 Package                     Arch              Version                     Repository              Size
========================================================================================================
Installing:
 httpd-devel                 x86_64            2.2.15-15.sl6.1             sl-security            146 k
 php53u-devel                x86_64            5.3.10-1.ius.el6            ius                    613 k
Installing for dependencies:
 apr-devel                   x86_64            1.3.9-3.el6_1.2             sl                     175 k
 apr-util-devel              x86_64            1.3.9-3.el6_0.1             sl                      68 k
 cyrus-sasl-devel            x86_64            2.1.23-13.el6               sl                     301 k
 db4-cxx                     x86_64            4.7.25-16.el6               sl                     589 k
 db4-devel                   x86_64            4.7.25-16.el6               sl                     6.6 M
 expat-devel                 x86_64            2.0.1-9.1.el6               sl                     118 k
 openldap-devel              x86_64            2.4.23-20.el6               sl                     1.1 M

Transaction Summary
========================================================================================================
Install       9 Package(s)

Total download size: 9.6 M
Installed size: 37 M
Downloading Packages:
(1/9): apr-devel-1.3.9-3.el6_1.2.x86_64.rpm                                      | 175 kB     00:00     
(2/9): apr-util-devel-1.3.9-3.el6_0.1.x86_64.rpm                                 |  68 kB     00:00     
(3/9): cyrus-sasl-devel-2.1.23-13.el6.x86_64.rpm                                 | 301 kB     00:00     
(4/9): db4-cxx-4.7.25-16.el6.x86_64.rpm                                          | 589 kB     00:00     
(5/9): db4-devel-4.7.25-16.el6.x86_64.rpm                                        | 6.6 MB     00:01     
(6/9): expat-devel-2.0.1-9.1.el6.x86_64.rpm                                      | 118 kB     00:00     
(7/9): httpd-devel-2.2.15-15.sl6.1.x86_64.rpm                                    | 146 kB     00:00     
(8/9): openldap-devel-2.4.23-20.el6.x86_64.rpm                                   | 1.1 MB     00:00     
(9/9): php53u-devel-5.3.10-1.ius.el6.x86_64.rpm                                  | 613 kB     00:02     
--------------------------------------------------------------------------------------------------------
Total                                                                   1.6 MB/s | 9.6 MB     00:05     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : apr-devel-1.3.9-3.el6_1.2.x86_64                                                     1/9 
  Installing : expat-devel-2.0.1-9.1.el6.x86_64                                                     2/9 
  Installing : db4-cxx-4.7.25-16.el6.x86_64                                                         3/9 
  Installing : db4-devel-4.7.25-16.el6.x86_64                                                       4/9 
  Installing : cyrus-sasl-devel-2.1.23-13.el6.x86_64                                                5/9 
  Installing : openldap-devel-2.4.23-20.el6.x86_64                                                  6/9 
  Installing : apr-util-devel-1.3.9-3.el6_0.1.x86_64                                                7/9 
  Installing : httpd-devel-2.2.15-15.sl6.1.x86_64                                                   8/9 
  Installing : php53u-devel-5.3.10-1.ius.el6.x86_64                                                 9/9 

Installed:
  httpd-devel.x86_64 0:2.2.15-15.sl6.1              php53u-devel.x86_64 0:5.3.10-1.ius.el6             

Dependency Installed:
  apr-devel.x86_64 0:1.3.9-3.el6_1.2                 apr-util-devel.x86_64 0:1.3.9-3.el6_0.1           
  cyrus-sasl-devel.x86_64 0:2.1.23-13.el6            db4-cxx.x86_64 0:4.7.25-16.el6                    
  db4-devel.x86_64 0:4.7.25-16.el6                   expat-devel.x86_64 0:2.0.1-9.1.el6                
  openldap-devel.x86_64 0:2.4.23-20.el6             

Complete!
APCモジュールをインストール。
# pecl install apc
/etc/php.d/にapc.iniファイルを作成。
extension=apc.so
[APC]
apc.enabled = 1
apc.shm_size = 64M
サービスを再読込。
# service php-fpm reslaod