這裏是有其內部註釋工作示例:
<?php
/*
Plugin Name: Dynamic CSS using Ajax
Plugin URI: https://github.com/soderlind/
Description:
Author: Per Soderlind
Version: 0.1.0
Author URI: http://soderlind.no
*/
if (!defined('ABSPATH')) {
die('Cheating, are we?');
}
define('DYNAMICCSS_VERSION', '0.1.0');
function dynamic_css_enqueue() {
wp_enqueue_style('dynamic-flags', admin_url('admin-ajax.php').'?action=dynamic_css&_wpnonce=' . wp_create_nonce('dynamic-css-nonce'), false, DYNAMICCSS_VERSION);
}
function dynamic_css() { // Don't wrap function dynamic_css() in if(!is_admin()){ , the call from admin-ajax.php will be from admin
$nonce = $_REQUEST['_wpnonce'];
if (! wp_verify_nonce($nonce, 'dynamic-css-nonce')) {
die('invalid nonce');
} else {
/**
* NOTE: Using require or include to call an URL ,created by plugins_url() or get_template_directory(), can create the following error:
* Warning: require(): http:// wrapper is disabled in the server configuration by allow_url_include=0
* Warning: require(http://domain/path/flags/css.php): failed to open stream: no suitable wrapper could be found
* Fatal error: require(): Failed opening required 'http://domain/path/css.php'
*/
require dirname(__FILE__) . '/css.php'; //use echo, printf etc in css.php and write to standard out.
}
exit;
}
add_action('wp_ajax_dynamic_css', 'dynamic_css');
add_action('wp_ajax_nopriv_dynamic_css', 'dynamic_css');
add_action('wp_enqueue_scripts', 'dynamic_css_enqueue'); //wp_enqueue_scripts = load on front-end
嗯..似乎並沒有工作。由於某些原因,如果我將代碼放入is_admin()函數中,它不會加載整個css文件。 – Kimmo
不要在'if(!is_admin()){'中包含函數dynamic_css()',admin-ajax.php的調用將來自admin。我在下面添加了一個工作示例。 – soderlind