次のページがあります。
http://liquidchurch.com/messages/
デスクトップやモバイルウェブでは問題ないようです。
私はモバイルアプリに取り組んでおり、アプリ内のページをカプセル化するためにWebビューを使用しています。問題は、モバイルアプリで表示するときにヘッダー/フッターをページの一部にしたくないが、デスクトップまたはアプリの外でモバイルブラウザを使用している場合はそれらを表示したいことです。
どのようにこれを達成することができるか、または私がそれについてすべて間違っているのであれば、何か考えはありますか?ありがとうございます。
これは、書き換えエンドポイントとテンプレートフィルタを使って実現できます。
まず、投稿タイプpage
に新しい書き換えエンドポイントを登録します。
function wpd_app_view_rewrite_endpoint() {
add_rewrite_endpoint( 'app-view', EP_PAGES );
}
add_action( 'init', 'wpd_app_view_rewrite_endpoint' );
書き換えルールをフラッシュすることを忘れないでください これを追加した後に(または単にコードなしでこれを行うにはパーマリンク>設定ページにアクセスしてください).
これで、ページパーマリンクURLの最後にapp-view/
を追加できるようになります。たとえば、あなたのページはdomain.com/messages/app-view/
になります。
次のステップはapp-view/
が存在するときを検出し、その場合は別のテンプレートをロードすることです。ページ投稿タイプにはpage_template
フィルタを使います。
function wpd_app_view_page_template( $template ) {
global $wp_query;
if( isset( $wp_query->query_vars['app-view'] ) ) {
$template = locate_template( array( 'app-view-template.php' ) );
}
return $template;
}
add_filter( 'page_template', 'wpd_app_view_page_template' );
これは、グローバルquery_vars['app-view']
オブジェクトに$wp_query
が設定されているかどうかをチェックし、この場合はapp-view-template.php
テンプレートをロードします。これは、app-view
書き換えルールが現在のリクエストと一致する場合にのみ当てはまります。