Tamam, ben benim bir uygulamaya haber tükürmek için kullanıyorum bu kodu var. Bugüne kadar çalışıyordu. Ben simpiler yapmak için aşağıdaki kod tüm mantığı şekilli kesik ettik. Ama "İŞ" Birisi bana nerede çalıştığını bu kodu düzeltmek yardımcı olabilir gerektiğini ve doğru yapılır? Ben birlikte saldırdığını biliyorum, ancak bugüne kadar herhangi bir sorun görünmüyordu. Ben olayın ne olduğunu bilmiyorum, hiçbir şey güncel değil.
Plugin Name: MyPlugin Example
Version: 1.0.1
if ( ! class_exists("MyPlugin") )
{
class MyPlugin
{
var $db_version = "1.0"; //not used yet
function init()
{
//Nothing as of now.
}
function activate()
{
global $wp_rewrite;
$this->flush_rewrite_rules();
}
function pushoutput( $id )
{
$output->out =' The output worked!';
$this->output( $output );
}
function output( $output )
{
ob_start();
ob_end_clean();
header( 'Cache-Control: no-cache, must-revalidate' );
header( 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' );
header( 'Content-type: application/json' );
echo json_encode( $output );
//Must encode this...
}
function flush_rewrite_rules()
{
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
function createRewriteRules( $rewrite )
{
global $wp_rewrite;
$new_rules = array( 'MyPlugin/(.+)' => 'index.php?MyPlugin=' . $wp_rewrite->preg_index(1) );
if ( ! is_array($wp_rewrite->rules) )
{
$wp_rewrite->rules = array();
}
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
return $wp_rewrite;
}
function add_query_vars( $qvars )
{
$qvars[] = 'MyPlugin';
return $qvars;
}
function template_redirect_intercept()
{
global $wp_query;
if ( $wp_query->get('MyPlugin') )
{
$id = $wp_query->query_vars['MyPlugin'];
$this->pushoutput( $id );
exit;
}
}
}
}
if ( class_exists("MyPlugin") )
{
$MyPluginCode = new MyPlugin();
}
if ( isset($MyPluginCode) )
{
register_activation_hook( __file__, array($MyPluginCode, 'activate') );
add_action( 'admin-init', array(&$MyPluginCode, 'flush_rewrite_rules') );
//add_action( 'init', array(&$MyPluginCode, 'init') );
add_action( 'generate_rewrite_rules', array(&$MyPluginCode, 'createRewriteRules') );
add_action( 'template_redirect', array(&$MyPluginCode, 'template_redirect_intercept') );
// add_filter( 'query_vars', array(&$MyPluginCode, 'add_query_vars') );
}