Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X
Post

WPtouchで別プラグインのコンテンツ末尾の出力を抑制する方法

wordpressの小ネタです。一つ前の記事の問題の際、まとめて気付いたので。


WPtouchはwordpressにスマホでアクセスした時、
スマホ用のテーマに自動的に切り替えるプラグインです。


で、他に記事画面にコンテンツを追加するプラグインを足していると、
スマホ用プラグインの中にコンテンツが表示される事があります。
通常これらはPC版のテーマファイルに合わせてデザインが調整されており、
スマホ用のデザインに合わない事があります。


このブログをiphoneのシミュレータでチェックした画面。
スマホ用のデザインですが、画面下にブックマークや関連記事のリストが表示されています。

ここのレイアウトが崩れており、
また、TwitterボタンはWPtouchに含まれているため、機能も重複しています。
前の記事でソーシャルブックマークを出力している関数が分かったため、
せっかくなのでスマホ時には表示しないように変更する事にしました。

今回はブックマークのみの修正で、
関連性のある記事の項目は問題なさそうなのでそのままにしておく事にしました。


まずはWPtouchでどのように判定しているかを確認。
調べてみたら「bnc_is_iphone」という関数を使っているようです。
関数名に「iphone」が含まれていますが、androidも認識してくれます。

ただし、これだけではなくて、さらにビューモードでmobileを指定している事も条件になります。
(これは、個々のスマホ端末ごとにスマホデザインでなく通常のPC用デザインに切り替える機能を実現するためです)


既存のコードの真似をして、次のように書く事により対応しました。

// ブックマーク出力の関数に判定を追加する
function wp_social_bookmarking_light_output( $services, $link, $title )
{
    // iphone時に非表示に変更
    global $wptouch_plugin;
    if(function_exists('bnc_is_iphone')){
        if(bnc_is_iphone() && $wptouch_plugin->desired_view == 'mobile'){
            return '';
        }
    }
    // ...
}


これでWPtouchのテーマではブックマーク一覧が出力されなくなります。
かなり乱暴なやり方なので、ちゃんと見直せばこれより綺麗な制御はできそうに思います。

TrackBack URL :

Leave a comment  

name

email

website

Submit comment