我尝试在WordPress的页面中使用自己插入的php脚本制作汽车目录。 这个php脚本从外部数据库加载数据,并显示有关汽车信息的表格。
例如,我们在页面www.domain.tld/catalog/
中插入了php脚本。
脚本需要一个或两个参数$_GET[‘id_vendor’] and $_GET[‘id_model’]
。
我们需要的是:
如果您输入网址
www.domain.tld/catalog/id_vendor/
或
www.domain.tld/catalog/id_vendor/id_model/
然后页面重定向到目录页面www.domain.tld/catalog/
并运行带参数的脚本。
我们的问题是演示文稿尝试显示具体页面www.domain.tld/catalog/id_vendor/
和www.domain.tld/catalog/id_vendor/id_model/
并显示错误404,因为此页面不存在。
我们只需将此网址用于将参数输入到页面www.domain.tld/catalog/
可以这样做吗? 我想我可能不得不用.htacces这样做,但我不确定如何。
或者您有任何其他想法如何从WordPress中的URL输入插入的php脚本的参数?
答案 0 :(得分:0)
在Wordpress模板中是脚本functions.php
。
在这个脚本中我添加了函数:
# 1(page_id是您拥有代码的页面的ID)
function supported_cars_rewrite_basic() {
add_rewrite_rule('^catalog/([^/]+)/?$', 'index.php?page_id=1254&id_vendor=$matches[1]', 'top');
add_rewrite_rule('^catalog/([^/]*)/([^/]*)/?$', 'index.php?page_id=1254&id_vendor=$matches[1]&id_model=$matches[2]', 'top');
}
add_action('init', 'supported_cars_rewrite_basic', 10, 0);
# 2
function supported_cars_rewrite_tag() {
add_rewrite_tag('%id_vendor%', '([^&]+)');
add_rewrite_tag('%id_model%', '([^&]+)');
}
add_action('init', 'supported_cars_rewrite_tag', 10, 0);
# 3
function ajaxCall($url = null){
if(is_null($url)){
return json_decode(null);
}
// create curl resource
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, $url);
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
$output = curl_exec($ch);
// close curl resource to free up system resources
curl_close($ch);
return json_decode($output, true);
}
在www.domain.tld/catalog/
页面中,我添加了以下代码:
// Read parameters
get_header();
global $wp_query;
// Query parametres in fnc supported_cars_rewire_tags
echo "<br />";
echo "<p>Vendor: " . $wp_query->query_vars['id_vendor'] . '</p>';
echo "<p>Model: " . $wp_query->query_vars['id_model'] . '</p>';
其他帮助我的答案: