人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Wordpressのプラグインwptouchのカスタマイズについて教えてください。ブログをスマホ対応するためwptouchを利用していますが、特定のページだけwptouchを適用しない方法をお教えください。
出来れば、functions.phpに特定のURLを複数記述することで実装できたらありがたいです。
どうぞよろしくお願いします。
wptouch > http://wordpress.org/extend/plugins/wptouch/

●質問者: kanienoteiou
●カテゴリ:インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●300ポイント ベストアンサー

WPtouchでユーザーエージェントを判定してから、テーマの切り替えを行っている為、今回やりたい事の場合、プラグインのファイルを直接編集する方法になります。

「wp-content/plugins/wptouch/wptouch.php」の次の部分(※616行目以降)を

foreach ( $useragents as $useragent ) {
if ( preg_match( "#$useragent#i", $container ) || file_exists( $devfile ) ) {


次のように変更します。

// 配列にPC用テーマで表示したいページのスラッグを指定します。(※1ページだけの場合は、文字列でしていしても大丈夫です。)
$pages = array('shopping', 'example', 'sample-page', 'sample-page2');
$exclude_pages = is_array($pages) ? implode('|', $pages) : $pages;
foreach ( $useragents as $useragent ) {
if ( (!preg_match('#/'. $exclude_pages .'/#i', esc_html($_SERVER['REQUEST_URI'])) && preg_match( "#$useragent#i", $container )) || file_exists( $devfile ) ) {



次はプラグイン化した場合です。(※上記プラグインファイルを直接変更する方法と違って、WPtouchがバージョンアップしてもそのまま使用できますが、今後のバージョンアップでの変更箇所によっては、動作しなくなる可能性もあります。)

<?php
/*
Plugin Name: Disable WPtouch on Page
Version: 0.1
Description: A plugin for WPtouch.
Author: rouge_2008
 */

function disable_wptouch() {
global $wp_filter;
// 配列にPC用テーマで表示したいページのスラッグを指定します。(※1ページだけの場合は、文字列でしていしても大丈夫です。)
$pages = array('shopping', 'example', 'sample-page', 'sample-page2');
$exclude_pages = is_array($pages) ? implode('|', $pages) : $pages;
if(preg_match('#/'. $exclude_pages .'/#i', esc_html($_SERVER['REQUEST_URI']))) {
foreach($wp_filter['plugins_loaded'][10] as $filters) {
if(is_array($filters['function'])) {
$num = count($filters['function']);
for($n=0; $n < $num; $n++) {
if(gettype($filters['function'][$n]) == 'object' && $filters['function'][$n]->applemobile == true) {
$filters['function'][$n]->applemobile = false;
}
}
}
}
}
}
add_action('plugins_loaded', 'disable_wptouch', 15);



※ページの指定方法は、上記プラグインを直接編集する場合と同じです。
※上記を記述したファイルを「disable-wptouch-on-page.php」など適当な名前で保存して、プラグインのディレクトリにアップロードして有効化してください。


kanienoteiouさんのコメント
すばらしいです! プラグインを直接書き換える方法はなんとか実装できていたのですが、おっしゃるとおり、プラグインのバージョンアップにどのように対応するかで悩んでおりました。 早速試してみます。ありがとうございます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ