워드 프레스 기능은 워드 프레스가로드 된 경우에만 사용할 수 있습니다. style.php
직접 전화 하면 워드 프레스 기능을 사용할 수 없습니다.
PHP 기반 스타일 시트에 WordPress를로드하는 간단한 방법 중 하나는 템플릿 파일을로드하는 사용자 지정 예약 URL 인 WordPress에 엔드 포인트를 추가하는 것입니다.
거기에 도착하려면 :
에 엔드 포인트를 등록 'init'
과 함께 add_rewrite_endpoint()
. 이름을 지어 봅시다 'phpstyle'
.
에 후크 'request'
와 확실히 엔드 포인트 변수하게 'phpstyle'
설정된 경우 비어 있지 않습니다. 크리스토퍼 데이비스의 우수한 A (대부분) WordPress Rewrite API 에 대한 완벽한 안내서를 읽고 여기에서 무슨 일이 일어나고 있는지 이해하십시오.
'template_redirect'
기본 템플릿 파일 대신 파일에 연결하여 전달하십시오 index.php
.
일을 짧게 유지하기 위해 다음 데모 플러그인에서 세 가지 간단한 단계를 하나의 함수로 결합했습니다 .
플러그인 PHP 스타일
<?php # -*- coding: utf-8 -*-
/*
* Plugin Name: PHP Style
* Description: Make your theme's 'style.php' available at '/phpstyle/'.
*/
add_action( 'init', 'wpse_54583_php_style' );
add_action( 'template_redirect', 'wpse_54583_php_style' );
add_filter( 'request', 'wpse_54583_php_style' );
function wpse_54583_php_style( $vars = '' )
{
$hook = current_filter();
// load 'style.php' from the current theme.
'template_redirect' === $hook
&& get_query_var( 'phpstyle' )
&& locate_template( 'style.php', TRUE, TRUE )
&& exit;
// Add a rewrite rule.
'init' === $hook && add_rewrite_endpoint( 'phpstyle', EP_ROOT );
// Make sure the variable is not empty.
'request' === $hook
&& isset ( $vars['phpstyle'] )
&& empty ( $vars['phpstyle'] )
&& $vars['phpstyle'] = 'default';
return $vars;
}
플러그인을 설치하고 wp-admin/options-permalink.php
한 번 방문 하여 다시 쓰기 규칙을 새로 고치고 style.php
테마에을 추가 하십시오.
견본 style.php
<?php # -*- coding: utf-8 -*-
header('Content-Type: text/css;charset=utf-8');
print '/* WordPress ' . $GLOBALS['wp_version'] . " */\n\n";
print get_query_var( 'phpstyle' );
이제를 방문하십시오 yourdomain/phpstyle/
. 산출:
/* WordPress 3.3.2 */
default
그러나 yourdomain/phpstyle/blue/
출력으로 이동하면 다음과 같습니다.
/* WordPress 3.3.2 */
blue
따라서 엔드 포인트를 사용하여 값에 따라 하나의 파일로 다른 스타일 시트를 제공 할 수 있습니다 get_query_var( 'phpstyle' )
.
경고
사이트 속도가 느려집니다. 방문 할 때마다 WordPress를 두 번 로드해야합니다 . 적극적인 캐싱 없이는하지 마십시오.