从“漂亮”的URL WordPress

时间:2017-09-19 09:04:47

标签: php wordpress .htaccess url-rewriting get

我尝试在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脚本的参数?

1 个答案:

答案 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>';

其他帮助我的答案:

Wordpress url rewriting - nice URL with name from SugarCRM

URL rewriting via Wordpress Rewrite or .htaccess