WordPress Plugins make customer url/page 自定义页面/参数 代码示例

之前我们做了WordPress自动采集并发布内容的插件,里面用到了需要重新另外打开一个窗口来采集内容,以防止出现不必要的错误而导致中断。

这里使用到了一个新的定义,比如我需要使用

https://laoji.org/jpost/?jtask=laoji.org

但其实这个页面并不存在,这里只是虚拟了一个页面和参数来处理数据。

具体代码如下:

//register activation function  register_activation_hook(__FILE__, 'jpost_activate');  //register deactivation function  register_deactivation_hook(__FILE__, 'jpost_deactivate');        function jpost_activate() {      jpost_plugin_rules();      flush_rewrite_rules();   }    function jpost_deactivate() {      flush_rewrite_rules();  }    //add rewrite rules in case another plugin flushes rules  add_action('init', 'jpost_plugin_rules');  //add plugin query vars (product_id) to wordpress  add_filter('query_vars', 'jpost_plugin_query_vars');  //register plugin custom pages display  add_filter('template_redirect', 'jpost_plugin_display');         function jpost_plugin_rules() {      add_rewrite_rule('jpost/?([^/]*)', 'index.php?jpost=jpost&$matches[1]', 'top');  //    调试时如需要重新应用rewrite规则并保存到数据,删除以下2行的注释  //    global $wp_rewrite;   //    $wp_rewrite->flush_rules();   }    function jpost_plugin_query_vars($query_vars) {      array_push($query_vars,'jpost');      array_push($query_vars,'jtask');      array_push($query_vars,'i');      array_push($query_vars,'jpage');      array_push($query_vars,'debug');      return $query_vars;  }    function jpost_plugin_display(  $templates = '' ) {      global $wp_query,$wpdb,$options;      $template = $wp_query->query_vars;      if ( array_key_exists( 'jpost', $template ) && 'jpost' == $template['jpost'] ):          if ( is_user_logged_in() ) {               require_once  plugin_dir_path( __FILE__ )."wp-jcrawl.php";          }else{              echo wp_jpost_output('Access denied.');          }          exit;      endif;  }

 

腾讯云限时秒杀【点击购买】

搬瓦工,CN2高速线路,1GB带宽,电信联通优化KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

Vultr$3.5日本节点,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快【点击购买】!

阿里云香港、新加坡VPS/1核/1G/25G SSD/1T流量/30M带宽/年付¥288【点击购买】