ブログ

  • WordPress 管理画面の投稿・ページ一覧に投稿IDとページIDを追加する便利な functions.php のコードを書いてみた。

    WordPress 管理画面の投稿・ページ一覧に投稿IDとページIDを追加する便利な functions.php のコードを書いてみた。

    「投稿とかページのIDを簡単に調べたいんだけど!!!」

    ということなので調べて実装してみた。

    投稿IDを使ってどうこうするってのはページで使うことが多いですかね、さて。

    コードだけ見れればいい、って方は読まずに一番下までいってください。

     

    関数をフックするポイントは 4つ

    投稿・ページ一覧画面に ID を表示できればいいので、一覧のタイトル・行 x2 の 4つでした。

    関数の説明は割愛、Codex リンクでお届け。

     

    manage_pages_columns

    ページ一覧の行タイトルを操るフック。

     

    manage_pages_custom_column

    Codex にはまだドキュメントがありませんね。

    http://codex.wordpress.org/Plugin_API/Action_Reference/manage_pages_custom_column

    ただ、後述の manage_posts_custom_column と内容はほぼ一緒です。

     

    manage_posts_columns

    投稿一覧の行タイトルを操るフック。

     

    manage_posts_custom_column

    投稿一覧の各行を操るフック。

     

    Codex はサンプルのコードが載っているのでほんとわかりやすいですね。

    ということでしゅっと実装して↓

     

    IDを表示するコードができた

    こんな感じ。

    functions.php に書くと、投稿・ページ一覧に ID が表示されるようになります。

    /**
     * 投稿・ページ行タイトルに項目 ID を追加する関数
     *
     * @param $columns
     *
     * @return mixed
     */
    function add_id_to_columns_title( $columns ) {
    	// 行タイトルに post_id を配列キーとした ID という名前を追加
    	$columns['post_id'] = __( 'ID' );
    	// post_id 用のスタイル
    	echo '<style>.column-post_id{width:40px;}</style>';
    	return $columns;
    }
    // 関数をフックして適用
    add_filter( 'manage_posts_columns', 'add_id_to_columns_title' );
    add_filter( 'manage_pages_columns', 'add_id_to_columns_title' );
    
    /**
     * 各行に投稿 ID を出力
     *
     * @param $column
     * @param $post_id
     */
    function add_id_to_column_rows( $column, $post_id ) {
    	switch ( $column ) {
    		// 行のキーが post_id なら ID を出力
    		case 'post_id':
    			echo "<span class='$column-$post_id'>$post_id</span>";
    			break;
    		default:
    			break;
    	}
    }
    // 関数をフックして適用
    add_filter( 'manage_posts_custom_column', 'add_id_to_column_rows', 10, 2 );
    add_filter( 'manage_pages_custom_column', 'add_id_to_column_rows', 10, 2 );
    投稿一覧にIDが表示されましたー
    投稿一覧にIDが表示されましたー

     

    ちなみに、並び替えの実装はしてないので並び替えはできません。

    需要があればやろうかしら。

     

    まとめ

    プラグインを使ったらできることをあえて、プラグインを使わずやることで勉強になりますほんと。

    カテゴリやタグでも他のフックを使えば色々できそうですね。

  • あひるちゃん見てきた→「ラバーダック2013@ほたるまち – アヒルプロジェクト2013冬」

    あひるちゃん見てきた→「ラバーダック2013@ほたるまち – アヒルプロジェクト2013冬」

    巨大ラバーダックが大阪中之島堂島川沿いにいらっしゃるということで。

     

    ラバーダックプロジェクト

    オランダの芸術家さんがあひるに世界中を旅させるという一風変わった企画。

    今回のほたるまち、サイトはこちら

     

    ラバーダック、写真撮ってきた

    そんなに大してあひるちゃんに興味はないんですけどもせっかくなので。

    「水都、大阪」を全面に押し出して水を噴射してキラキラさせてはりました。

     

    まとめ

    寒風吹きすさぶ寒空の中、噴水がたまに飛んでくる素敵なイベント。

    中之島堂島川沿いでの開催は 12/25 (水) までなので、興味がある人は早めに行ったらいいと思うよ。

  • wp_trim_words、文字列を指定した文字数で html タグを除去して取得できる便利な関数がそれ。

    wp_trim_words、文字列を指定した文字数で html タグを除去して取得できる便利な関数がそれ。

    WordPress を使ってちょっと込み入ったことをやりたい、ってときに便利なやつです。

    最近よく使うのでメモ。

     

    Codex

    Codex、ほんと助かります。

     

    wp_trim_words の引数

    <?php $trimmed = wp_trim_words( $text, $num_words = 55, $more = null ); ?>

    ひきすうは3つ。

    • $text…必須、切り取りたい文字列
    • $num_words…切り取りたい文字数。デフォルト値は 55文字。
    • $more…切り取った文字列の後に追加したい文字や html。デフォルトは値 null

    配列とかややこしいのは出てこないので使いやすいですね。

    注意するのは WordPress 3.3 以上でないとこの関数を実装していないことです。

     

    wp_trim_words を使ってみる

    使ってみれば簡単に理解できますきっと。

    yahoo.co.jp サイトの文字列を 50文字切り取って出力するサンプル。

    <?php
    $html = file_get_contents( 'http://www.yahoo.co.jp/' );
    $html = wp_trim_words( $html, 50, '' );
    echo $html;
    ?>
    出力結果は↓
    
    Yahoo! JAPAN ヘルプ Yahoo! JAPANトップページの全機能をご利用いただくには、

     

    はい、文字列だけ取得・出力できました。

    html タグは一切残りません、べんり!

     

    $more 部分に html タグなんかを入れたいってときはこんな感じで。

    <?php
    $html = file_get_contents( 'http://www.yahoo.co.jp/' );
    $html = wp_trim_words( $html, 50, '…<a href="http://yahoo.co.jp">Yahoo はこちら</a>' );
    echo $html;
    ?>

     

    まとめ

    使い方次第で応用が効くので、抜粋の表示をオリジナルにしたい時や1行に収めてリストで色々出力したいときに使うといいかも。

     

  • strip_tags、html タグを取り除く PHP の関数

    strip_tags、html タグを取り除く PHP の関数

    当たり前のことでも書いていくといいことがあるはずなので備忘録。

    php で html タグや php タグを削除する便利な関数。

     

    strip_tags

    公式のマニュアルはこちら、簡単な関数。

     

    string strip_tags ( string $str [, string $allowable_tags ] )

    パラメータは2つ、1つめは必須で、2つめは許可するタグを指定できるオプションの引数。

     

    使ってみる

    実際に使って確認。

    まずは file_get_contents で http://example.com を表示するだけのサンプル。

    <?php
    $html = file_get_contents( 'http://example.com/' );
    echo $html;
    ?>

     

    http://example.com のソースはこんな。

    <!doctype html>
    <html>
    <head>
        <title>Example Domain</title>
    
        <meta charset="utf-8" />
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <style type="text/css">
        body {
            background-color: #f0f0f2;
            margin: 0;
            padding: 0;
            font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
    
        }
        div {
            width: 600px;
            margin: 5em auto;
            padding: 50px;
            background-color: #fff;
            border-radius: 1em;
        }
        a:link, a:visited {
            color: #38488f;
            text-decoration: none;
        }
        @media (max-width: 700px) {
            body {
                background-color: #fff;
            }
            div {
                width: auto;
                margin: 0 auto;
                border-radius: 0;
                padding: 1em;
            }
        }
        </style>    
    </head>
    
    <body>
    <div>
        <h1>Example Domain</h1>
        <p>This domain is established to be used for illustrative examples in documents. You may use this
        domain in examples without prior coordination or asking for permission.</p>
        <p><a href="http://www.iana.org/domains/example">More information...</a></p>
    </div>
    </body>
    </html>

     

    これを実行すると、http://example.com のソースを引っ張ってくるのでそのまま表示される。

    example.com が表示される
    example.com と同じのがそのまま表示される

     

    strip_tags してみる

    まずは1つめの引数だけ使って。

    <?php
    $html = file_get_contents( 'http://example.com/' );
    echo strip_tags( $html );
    ?>

     

    これで全てのタグが除去されて、こうなる。

    strip_tags によりタグというタグが取り除かれる
    strip_tags によりタグというタグが取り除かれる

     

    インラインスタイルの <style></style> 内は残る。

     

    2つめの引数で除外してみる

    <style> タグを指定。

    <?php
    $html = file_get_contents( 'http://example.com/' );
    echo strip_tags( $html, '<style>' );
    ?>

     

    ちゃんと <style> だけ残った。

    除外できた。複数指定も可。
    除外できた。複数指定も可。

     

    注意点

    ドキュメントに書いてあるとおり、

    strip_tags() は HTML の検証を行わないため、 不完全または壊れたタグにより予想以上に多くのテキスト/データが削除される可能性があります。

    乱れた HTML だと実行結果が芳しくないかもしれないので注意。

    おわり。

  • WordPress 3.8 に更新したら管理画面のフォントが□になったという方へ。

    WordPress 3.8 に更新したら管理画面のフォントが□になったという方へ。

    WordPress 3.8、英語版がリリースされましたね。

     

    変更点は管理画面のテーマが大きいところです、そのあたりは他で色々解説されると思うので置いといて。

     

    張り切って 3.8 に更新して困ってるひと、いませんか

    これですこれ

    管理画面フォントが豆腐に
    管理画面フォントが豆腐に

     

    「WordPress のバグじゃないの!!」

    と考えるのは早計ですので解決しましょうか。

     

    フォントがちゃんと表示されない問題が起きる条件

    日本で WordPress を使ってらっしゃる方なら必ず入れているであろうプラグイン、wp-multibyte-patch が WordPress 3.8 にまだ対応していない、ってだけです。

     

    解決する方法

    日本語版 3.8 がリリースする際には問題なく使えると思います、それまでの暫定処置として。

    WordPressディレクトリ /wp-content/plugins/wp-multibyte-patch/ext/ja/admin.css を開く。

    開くと、こう記述されてるはずです。

    @charset "utf-8";
    
    body *:not(textarea) {
    	font-style: normal !important;
    	font-family: sans-serif !important;
    }

     

    5行目で font-family を全上書きしてしまってるため、WordPress 3.8 管理画面の Web font が反映されない、ってわけですね。

    ということで 5行目をコメントアウトすればオッケーです。

     

    @charset "utf-8";
    
    body *:not(textarea) {
    	font-style: normal !important;
    	/*font-family: sans-serif !important;*/
    }

     

    まとめ

    日本語版を待てばいいだけのことですので、大人しく日本語版を待ちましょう。

    MP6 プラグインを入れている人は、3.8 になったらちゃんと停止しましょう。

    ↑ 3.8 にしたら自動で停止してました。かしこい!

    2013.12.17 追記

    wp multibyte patch 1.9 で修正されていました

  • Feedly beta が Feedly公式ブログでアナウンスされています。

    Feedly beta が Feedly公式ブログでアナウンスされています。

    Google Reader が終了してからというものずっと使い、追いかけ続けている Feedly。

    2013/12/08 付けの公式ブログにて、β版の提供がアナウンスされました。

     

    Feedly beta を使うには

    2013/12/09 20:00現在、何も変わりはありません、 http://feedly.com/beta にアクセスすればいいとのことです。

    今週中 (2013/12/15 ぐらいかな?) には反映されるとのこと。

     

    Feedly の Google+ コミュニティもできたらしく

    あんまり熱心にやっている人と遭遇しませんが、慣れると一番楽しいという噂の Google+ です。

     

    Android, iPhone 版のβも!

    Web 版の βがうまくいき次第、Android, iPhone のβ版に着手するようです。

    ついでに通常版の各リンクを載せておきます。

    Feedly News Reader. Blogs. RSSFeedly News Reader. Blogs. RSS 

    制作: Feedly Team
    価格: 無料
    平均評価: 4.5(合計 136,548 件)

     

     

    まとめ

    まとめも何も、ニュース的な更新なのでたいしてまとまりがないですけども、

    RSSリーダーとしては今後も Feedly を推していきたいぼくです。

  • AndroidHTML ブックマークレットが動かなかったんで直してみたよ。

    AndroidHTML ブックマークレットが動かなかったんで直してみたよ。

    2014/01/29 更新しました→新しい記事へ

     

    android アプリをブログで紹介したい、って時に使っていた AndroidHTML ブックマークレットを久しぶりに使ってみたものの動かず。

    どうやら Android マーケットから Playストアに変わったため使えなくなった模様。

    幸いにも制作者の方が公開してくだすってるのでこれはひとつ修正しましょうということで。

     

    Play Store 向けに修正しました

    Hatena let で公開されていたので fork して修正。

    元の AndroidHTML からの変更点は

    • Playストア対応
    • 画像に alt を追加
    • chrome で閲覧時に画像が webp 形式になるのを png にする
    • 出力を調整
    • 無料の場合 undefined になってたのとかを修正

    ぐらいです。

     

    動作確認してみたところ

    Playストアで使ってみますと

    このページには認証されていないソースからのスクリプトが含まれています
    このページには認証されていないソースからのスクリプトが含まれています

     

    Playストアは https なんで http な Hatena let のブックマークレットだと安全じゃないと言われてしまいます。

    “安全でないスクリプトを読み込む” を押せばまぁいけるんですが、毎回となると面倒。

     

    https な Dropbox にブックマークレットを据えた

    これで問題なく使えるように。

    ブックマークレットの登録はこれ→  AndroidHtml for Play

    ブックマークレットの使い方は、Playストアのアプリ単独ページに訪れブックマークレットをクリックでOKです。

     

    ブックマークレットを使うと

    こんな感じで出力されます。

    Google検索Google検索

    制作: Google Inc.
    価格: 無料
    平均評価: 4.3(合計 436,275 件)

    インストール済みの有料アプリの場合価格が取得できないので、シークレットウインドウ開くなり、ログアウトするなりしましょう。

     

    まとめ

    元々制作された nkunijp さん pantherlamd0219 さんにスペシャルサンクスです、それ以外ありません。

    とりあえずこれで android アプリの紹介が滞りなくできると思います。

  • 芦屋マダムごっこ ~ポッシュ・ドゥ・レーヴ~

    芦屋マダムごっこ ~ポッシュ・ドゥ・レーヴ~

    にっき。

    芦屋マダムごっこしてきた。

    カメラを持ってなかったため携帯電話での残念な撮影。

     

    マダムポイント

    マダムと言えばケーキ。

    芦屋駅すぐのケーキ屋さん、poche du reve。

     

    ケーキと言えばショートケーキ

    店内に食べるスペースはなかったため六甲山の上らへんでいただいてみた。

    ポッシュ・ドゥ・レーヴのショートケーキ
    ポッシュ・ドゥ・レーヴのショートケーキ

     

    イチゴがこけてしまったためむりくり起こして撮影。

    ちなみに、Wikipedia ショートケーキ概要より引用すると

    ショートケーキ(short cake)は日本及び西欧にそれぞれあるケーキの種類であるが、日本人のイメージする「スポンジとクリームが層になって、イチゴなどがのせられた」ショートケーキは英語圏ではレイヤーケーキ(Layer cake、あるいはLayered cake)と呼ばれることが多い。

    つまりぼくが食べたのはショートケーキでなく、レイヤーケーキ。

     

    王道ショートケーキの中の王道という感じで。

    甘さは控えめでなくがしっと甘い。

    イチゴもちゃんと甘い。

    スポンジふわっふわ。

     

    お取り寄せもやっているそうな

    マダム御用達かどうかはさておき。

     

    ついでに有馬温泉

    有馬温泉 銀の湯
    有馬温泉 銀の湯

     

    「太閤の湯」という素敵なマダム向けっぽい 2,400円 の温泉があったんですけどもちょっとスルーしましてお手頃な銀の湯へ入りマダムごっこ終了。