如何使用 $_GET 获取 Wordpress 自定义函数,以使用 urlencode 中的 id 返回值


How do I get a Wordpress custom function using $_GET to return a value using an id from a urlencode?

我正在将一个网站转移到wordpress中,我正在尝试将主模板中列表/菜单的urlencode中的id发送到标题模板中的$ _GET超全局。尽管 urlencode 正在工作,但使用 $_GET 超全局的函数似乎没有返回值。

这是调用函数以处理来自 urlencode 的 id 值的部分。

if (isset($_GET['opt'])) {
$sel_state = get_state_by_id($_GET['opt']);
} else {
$sel_state = NULL;
} 

这是函数中的函数.php它应该返回一个变量以分配给 $sel_state,以便我可以在主模板页面中显示行中的值。

function get_state_by_id($state_id) 
{
    global $wpdb;
    $sel_state_row = $wpdb->get_row( "SELECT * 
FROM $wpdb->state_menu_list WHERE id = " . $state_id 
. " LIMIT 1" );
    return $sel_state_row;  
}

这是将 $sel_state 变量分配给将在主模板页面上显示的变量的部分的开头。

global $sel_state;          
$main_gov_page_url = $sel_state->main_gov_page_url;
// ...the other values in the row.

有没有办法在没有插件的情况下完成这项工作使用类似query_vars的东西?如果我需要一个插件要做到这一点,有人可以指出我的权利吗方向?

我认为您需要对代码进行大量更改,您必须在函数.php文件中添加过滤器,然后您可以调用您在函数中添加的函数.php

在功能.php,

function get_state_by_id_function($state_id) 
{
    global $wpdb;
    $sel_state_row = $wpdb->get_row( "SELECT * 
FROM $wpdb->state_menu_list WHERE id = " . $state_id 
. " LIMIT 1" );
    return $sel_state_row;  
}
add_filter( 'get_state_by_id', 'get_state_by_id_function');

现在,您必须随时随地调用get_state_by_id,在您的情况下:

if (isset($_GET['opt'])) {
$sel_state = get_state_by_id($_GET['opt']);
} else {
$sel_state = NULL;
}

谢谢