Passaggio di parametri URL alle pagine WordPress e URL leggibili
Ho creato uno shortcode come questo:
function test_func( $atts ) {
return $_GET['myvar'];
}
add_shortcode( 'test', 'test_func' );
e una pagina con il nome myparameters
quindi questa è l'URL finale:
http://website.com/myparameters
se provo questo funziona perfettamente:
http://website.com/myparameters/?myvar=theparameter
Ma vorrei avere un URL leggibile o amichevole come questo:
http://website.com/myparameters/theparameter/
Però mostra pagina non trovata.
Ho provato alcuni tutorial come questo LINK ma non succede nulla

l'esempio del link @milo è solo le risposte, dobbiamo usare global $wp; per ottenere il valore così $wp->query_vars['myvar'];

Questo è l'esempio completo, funziona molto bene con un parametro, basta cambiare l'id con quello della tua pagina.
function bartag_func( $atts ) {
global $wp;
$view = $wp->query_vars['jp_stn'];
return $view;
}
add_shortcode( 'bartag', 'bartag_func' );
function cdl_rewrite_rule(){
add_rewrite_rule(
'pronosticador/([-a-z]+)/?$',
'index.php?page_id=52&jp_stn=$matches[1]',
'top'
);
}
add_action( 'init', 'cdl_rewrite_rule' );
function cdl_query_vars( $query_vars ){
$query_vars[] = 'jp_stn';
return $query_vars;
}
add_filter( 'query_vars', 'cdl_query_vars' );

Per ottenere URL eleganti con parametri in WordPress, puoi utilizzare le regole di riscrittura fornite da WordPress insieme a un endpoint personalizzato o a una regola di riscrittura.
Devi registrare una regola di rewrite
personalizzata per gestire l'URL elegante. Aggiungi il seguente codice al file functions.php
del tuo tema:
function custom_rewrite_rule() {
add_rewrite_rule('^mieiparametri/([^/]+)/?', 'index.php?pagename=mieiparametri&miavar=$matches[1]', 'top');
}
add_action('init', 'custom_rewrite_rule', 10);
function custom_query_vars($query_vars) {
$query_vars[] = 'miavar';
return $query_vars;
}
add_filter('query_vars', 'custom_query_vars', 10, 1);
Dopo aver aggiunto la regola di riscrittura, devi svuotare le regole di riscrittura affinché WordPress riconosca la nuova regola. Puoi farlo visitando la pagina "Impostazioni" > "Permalink"
nell'area di amministrazione di WordPress.
Aggiorna la tua funzione shortcode per recuperare il valore di miavar
dalle variabili di query invece che da $_GET
:
function test_func($atts) {
$miavar = get_query_var('miavar');
return $miavar;
}
add_shortcode('test', 'test_func');
