it-swarm.dev

Zobrazit odkazy na stránky archivů založené na vlastních hodnotách polí

Mám webovou stránku pro nábor pracovníků, na které chci zobrazit seznam odkazů na místo práce. Umístění úlohy již bylo zadáno do vlastního pole pro každý příspěvek, takže chci zobrazit seznam odkazů, které po kliknutí zobrazí příspěvky pouze s touto zadanou vlastní hodnotou, tj. -

Anglie Irsko USA atd.

Klikněte na odkaz země výše a zobrazte všechny příspěvky, které mají danou zemi přidány jako vlastní hodnotu pole?

4
Leon Quinn

Doporučuji pro to použít vlastní taxonomii ne vlastní pole. Archivy můžete třídit a zobrazovat na základě taxonomie mnohem snadněji než u vlastních polí.

Pokud však chcete seznam na základě vlastního pole, budete muset upravit argumenty odeslané na stránku query_posts() na stránce archivu a předat je v souboru meta_key a meta_value, které hledáte.

Přidání proměnné dotazu:

add_action('init', 'add_custom_meta_url');
function add_custom_meta_url() {
    global $wp,$wp_rewrite;
    $wp->add_query_var('location');
    $wp_rewrite->add_rule('location/([^/]+)','index.php?location=$matches[1]','top');
    $wp_rewrite->flush_rules(false);  // This should really be done in a plugin activation
}

Pak se vaše permalinks pro archiv stane něčím v souladu s http://mycoollocationsite.com/location/englandhttp://mycoollocationsite.com/location/irelandhttp://mycoollocationsite.com/location/usa ... atd ...

Dále budete muset přidat libovolnou hodnotu, která byla do vašeho umístění předána aktuálnímu dotazu:

add_action('parse_query', 'apply_custom_meta_to_query');
function apply_custom_meta_to_query(&$query) {
    if (isset($query->query['location'])) {
        $query->query_vars['meta_key'] = 'location';
        $query->query_vars['meta_value'] = $query->query['location'];
        unset($query->query_vars['location']);            // You don't need this

    }
}

Předpokládám, že ukládáte vlastní data do pole nazvaného location ... takže změňte, pokud se mýlím.

To vám však umožní filtrovat archivy na základě konkrétního umístění. Pokud chcete tímto způsobem povolit archivy založené na datech, které budou vyžadovat některá další pravidla v mém prvním bloku kódu (právě teď by se zobrazil seznam všech příspěvky s location meta_key).

Místo toho doporučuji použít vlastní taxonomii. Je to čistší, rozšiřitelnější a vyžaduje méně vlastního kódování. To je také přesně ta situace, pro kterou byly vytvořeny vlastní taxonomie ... tak prosím, neobjevujte kolo ...

3
EAMann