最简单的方法是简单地创建custom rewrite endpoint. 这是一张双人票。它将一次性创建实际的永久链接结构和查询变量。
请注意,创建以下内容后,您需要重新保存永久链接:设置->永久链接->保存按钮。
/**
* Create Careers Endpoint
*
* @return void
*/
function prefix_careers_endpoint() {
add_rewrite_endpoint(
\'careers\', // Permalink Endpoint
EP_PAGES, // Use `EP_ROOT` for more complex permalink strucures such as `careers/job`
\'jobid\' // Custom Query Var ( if not passed, defaults to Endpoint - first parameter `careers` )
);
}
add_action( \'init\', \'prefix_careers_endpoint\' );
接下来我们可以检查
global $wp_query
查询变量的存在。如果存在,我们将使用自己选择的模板切换当前模板。在这种情况下,它将在主题中查找
endpoint-careers.php
.
/**
* Include template if query var exists
*
* @param String $template
*
* @return String $template
*/
function prefix_careers_template( $template ) {
global $wp_query;
// Ensure our `jobid` query var exists and is not empty
if( \'\' !== $wp_query->get( \'jobid\' ) ) {
// Ensure our template file exists
if( \'\' !== ( $new_template = locate_template( \'endpoint-careers.php\' ) ) ) {
$template = $new_template; // Assign templae file path from conditional
}
}
return $template;
}
add_filter( \'template_include\', \'prefix_careers_template\' );
最后,在自定义模板文件中
endpoint-careers.php
之后
get_header()
我们可以创建和调用自定义函数
prefix_get_data()
将从
global $wp_query
然后做一个
wp_remote_get()
通过API传递作业ID。这将有希望返回有用的数据,然后我们可以在模板中使用。
/**
* Return data from external API
*
* @param Integer $jobid
*
* @return Array
*/
function prefix_get_data( $jobid = 0 ) {
global $wp_query;
$jobid = ( ! empty( $jobid ) ) ? $wp_query->get( \'jobid\', $jobid ) : $jobid;
$response = wp_remote_get( \'http://foobar.url\', array(
\'body\' => array(
\'jobid\' => $jobid,
)
) );
return json_decode( $response );
}
称之为
$data = prefix_get_data()
. 您可能需要修改此函数,具体取决于您的API期望获得的内容和API返回的内容。您甚至可以使用直观的方法创建一个自定义类来处理和调用数据。可能性是无限的!