自定义插件的端点回调显示

时间:2015-07-08 作者:Ravioli87

我正在构建一个插件,允许管理员向数据库添加工作人员。我在插件类文件中创建了一个函数。。。

cp_libstaff_frontend_display()
。。。它向前端用户显示数据库中每个工作人员的表。此函数附加到显示在URL上的快捷码:

mysite.com/librarywp/staff-directory 
现在,我想做的是在每个工作人员的名字上有一个链接,该链接将用户带到一个页面,只获取该工作人员的信息。例如

mysite.com/librarywp/libstaff/1
其中,“1”是应检索其个人页面的工作人员的ID。我已经为此创建了一个端点,如下所示:

public static function cp_libstaff_add_rewrites(){
 add_rewrite_endpoint( \'libstaff\', EP_PERMALINK );
}

public static function cp_libstaff_filter_request( $vars ){
  if( !isset( $vars[\'libstaff\'] ) ) $vars[\'libstaff\'] = true;
  return $vars;
}

public static function cp_libstaff_rewrite_catch_libstaff(){
  if( get_query_var( \'libstaff\' ) ){

      echo \'WHAT NOW?\';
      exit();
  }
}

add_action( \'init\', array(\'Libstaff\', \'cp_libstaff_add_rewrites\') );
add_action( \'template_redirect\', array(\'Libstaff\', \'cp_libstaff_rewrite_catch_libstaff\') );
add_filter( \'request\', array(\'Libstaff\', \'cp_libstaff_filter_request\') );
在这之后,我对如何继续使用回调函数感到非常困惑。是否应该在此处的某个位置创建自定义帖子类型?某种模板?

1 个回复
SO网友:Ravioli87

原始问题中的代码是正确的。下面的代码取自链接教程。基本上,我所要做的就是在我的插件中创建一个模板文件(我只是从我的主主题中复制了single.php中的一些代码,作为指南使用到:

dirname( __FILE__ ) . \'/staff-template.php\'
然后,当运行template\\u重定向时,它会显示该模板。当然,这假设libstaff设置为查询变量。

function cp_libstaff_rewrite_catch_libstaff() {
    global $wp_query;

    // if this is not a request for json or a singular object then bail
    if ( ! isset( $wp_query->query_vars[\'libstaff\'] ) || ! is_singular() )
        return;

    // include custom template
    include dirname( __FILE__ ) . \'/staff-template.php\';
    exit;
}
add_action( \'template_redirect\', \'cp_libstaff_rewrite_catch_libstaff\' );
教程链接:https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/

结束

相关推荐

Dynamic Endpoints

我在WordPress外部有一个数据库表,需要为其创建端点。我已经创建了一个页面/cars/ 我计划使用页面模板生成链接。我希望url看起来像/cars/camaro/ ()/cars/%model%/ ). 起初,我认为我可以使用端点,但不知道如何根据从模型表中提取的段塞使它们动态。我也不确定使用Permalink结构标签是更容易还是更好。我甚至不完全确定从哪里开始,我以前创建过“静态”端点,所以我有一个基础可以跳出,但当我到达request 我不知道该怎么办。/** * Add endpoi