web-dev-qa-db-fra.com

comment faire une chaîne de requête de lien URL

J'ai des pages avec un méta-champ personnalisé appelé "ctr_state", et il contient un nom d'état, comme "Arizona".

J'essaie de créer un lien hypertexte qui renverra une liste de pages ressemblant à des archives qui correspond à la méta_valeur que je cherche.

Par exemple,

<a href="http://mydomain.com/?type=page&amp;meta_key=ctr_state&amp;meta_value=Arizona">Show All Arizona Pages</a>

Cela ne fonctionne pas, mais simplement pour montrer comment je veux que cela fonctionne comme un lien. Je ne veux pas d'une liste sur la page, je veux juste qu'elle soit liée à une page de type archive, montrant seulement la page qui correspond à l'état que je cherche.

Est-ce possible?

1
stabilimenta

Voici comment je l'ai fait fonctionner:

AJOUTÉ ceci à functions.php:

function include_template_function( $template_path ) {
    global $wp;
    if ($wp->request == 'state') {
        $template_path = locate_template( array ( 'state.php' ) );
    }
    return $template_path;
}

$state_name = $_GET['st']; //this is added to use as a global variable

ADDED THIS à header.php car WP pense qu'il sert une page 404

    if ($wp->request == 'state') { 
        echo 'Member Centers in ' . $state_name . ' | ';
    } else {
        wp_title( '|', true, 'right' );
    } 
?>
</title>

AJOUTÉ CE au modèle de base (page.php):

<?php 
    $baseURL = esc_url( home_url( '/' ) );
    $ak_link = $baseURL . 'state?st=Alaska'; // for each state
?>
<a href="<?php echo $ak_link; ?>">Show Alaska Pages</a> 

CREATE state.php template qui gère les requêtes d'état:

<?php global $state_name; ?> ?>

<?php 
    $mypages = get_pages('child_of='.$parent_page_id.'&sort_order=ASC&parent='.$parent_page_id.'&meta_key=ctr_state&meta_value='.$state_name);
    foreach($mypages as $page)
    {
?>
... Do Stuff! ...
<?php } ?>
1
stabilimenta