Hur kan syltkakor överleva i det vilda utan ögon?
WordPress: Söka med hjälp av flera dropdowns?
Visa signatur
Jag tror inte detta är ett WordPress specifikt problem så kan posta en kod, som delvis fungerar, den gör en söksträng baserat på 2 dropdowns, ena i en kategori, sen andra baserat på en taxonomy, problemet är att den spottar ut fel söksträng men någon här kanske är jävligt på att rätta till det? Ganska mycket kod:
Funktioner för att göra en söksträng och för att lista taxonomies, min taxonomy heter "location", definerad längst upp.
function dropdown_search($taxonomy, $args = '' ) {
$defaults = array('taxonomy' => 'location', // <- write taxonomy name
'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC',
'exclude' => '', 'include' => ''
);
$args = wp_parse_args( $args, $defaults );
$terms = get_terms($taxonomy, array_merge($args, array('orderby' => 'count', 'order' => 'DESC')) ); // Always query top tags
if ( empty($terms) )
return;
$return = generate_dropdown_search( $terms, $taxonomy, $args ); // Here's where those top tags get sorted according to $args
if ( is_wp_error( $return ) )
return false;
else
echo apply_filters( 'dropdown_search', $return, $args );
}
function generate_dropdown_search( $terms, $taxonomy, $args = '' ) {
global $wp_rewrite;
$defaults = array(
'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC'
);
$args = wp_parse_args( $args, $defaults );
extract($args);
if ( !$terms )
return;
$counts = $term_links = $term_slugs = array();
foreach ( (array) $terms as $term ) {
$counts[$term->name] = $term->count;
$term_links[$term->name] = get_term_link( $term->name, $taxonomy );
$term_slugs[$term->name] = $term->slug;
if ( is_wp_error( $term_links[$term->name] ) )
return $term_links[$term->name];
$term_ids[$term->name] = $term->term_id;
}
$min_count = min($counts);
$spread = max($counts) - $min_count;
if ( $spread <= 0 )
$spread = 1;
$font_spread = $largest - $smallest;
if ( $font_spread <= 0 )
$font_spread = 1;
$font_step = $font_spread / $spread;
// SQL cannot save you; this is a second (potentially different) sort on a subset of data.
if ( 'name' == $orderby )
uksort($counts, 'strnatcasecmp');
else
asort($counts);
if ( 'DESC' == $order )
$counts = array_reverse( $counts, true );
$a = array();
$rel = ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) ? ' rel="term"' : '';
foreach ( $counts as $term => $count ) {
$term_id = $term_ids[$term];
$term_link = clean_url($term_links[$term]);
$term_slug = $term_slugs[$term];
$term = str_replace(' ', ' ', wp_specialchars( $term ));
$a[] = "\t<option value='$term_slug'>$term ($count)</option>";
}
switch ( $format ) :
case 'array' :
$return =& $a;
break;
case 'list' :
$return = "<ul class='wp-tag-cloud'>\n\t<li>";
$return .= join("</li>\n\t<li>", $a);
$return .= "</li>\n</ul>\n";
break;
default :
$return = join("\n", $a);
break;
endswitch;
return apply_filters( 'generate_dropdown_search', $return, $term, $args );
}
Sen för att visa hela härligheten: (det är inte denna som skapar problem vad jag kan se iaf)
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
<div class="alignleft">
<?php wp_dropdown_categories( 'show_option_all=Alla kategorier' ); ?>
<select name="taxonomy">
<option value="0">Hela sverige</option>
<?php dropdown_search('location', 'number=0&order=asc'); ?>
</select>
</div>
<input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="searchinput" />
<input type="submit" id="searchsubmit" value="Search" class="btn" />
</form>
Söksträngen den skickar ut när man väljer taxonomy från dropdown listan är: "?cat=0&taxonomy=dalarna&s=" istället för "?cat=0&taxonomy=location&term=dalarna&s="
Någon som har en gissning på hur man rättar till söksträngen?
Visa signatur
Hur kan syltkakor överleva i det vilda utan ögon?
Citera flera
Citera
Hårdvara
- Idag Sony läcker uppgifter i rättegång – så stort är Call of Duty 15
- Igår Nvidia: "Energieffektiva RTX 4060 sparar hundralappar" 37
- Igår MSI Geforce RTX 4060 Ventus 2X OC – bra prestanda vid 1080p men medioker kylare 47
- Igår Noctua släpper monteringsram för "deliddade" Ryzen 7000-processorer 15
- Igår Nvidias nästa arkitektur för Geforce kommer år 2025 58
Mjukvara
Övrigt
- Igår Veckans fråga: Vilket operativsystem föredrar du? 84
- Igår Bilar med smarta inslag ger fler dumma fel 63
- 27 / 6 Telekombranschen: "Smarta glasögon ersätter telefoner inom fem år" 88
- 26 / 6 Lastpass-användare rasar – kan inte logga in 59
- 26 / 6 Inet frågar SweClockers – Vad skulle du vilja förbättra på Inet.se? 53
Datorkomponenter
Ljud, bild och kommunikation
- En av tre fläktar på en AIO går på högvarv2
- Benify-erbjudanden på Samsung-TV [utbruten tråd]1030
- Hej, min fjärrkontroll till Google tv'n har pajat och kan inte synka kontrollen3
- Pixel 6 pro med trasig skärm, rädda data?1
- Borra i betongvägg61
- Elbilar - Tråden för intresserade20460
- Sony läcker uppgifter i rättegång – så stort är Call of Duty15
- Veckans fråga: Vilket operativsystem föredrar du?84
- Ny dator och skärm ca 40 000kr9
- Gå ner i vikt - tråden2973
- Säljes Gamingdator 4080 / 13700KF / 32GB DDR5
- Säljes I5 12500
- Säljes LG 27'' UltraGear 27GP950 4K Nano IPS 160 Hz HDMI 2.1
- Säljes Star Wars Jedi AMD kod
- Säljes Trasig Xiaomi Mi Electric Scooter (M365) Svart
- Säljes 5800x3D + x570 Meg Unify + be quiet! Dark Rock Slim
- Säljes AMD ASUS DUAL RX6700XT
- Säljes Dell OptiPlex 7010
- Säljes Datordelar: i5 9600k + 1070 GTX mm.
- Säljes 1080 TI | Vattenblock | 1TB SSD | Apple Watch 4 Stainless | Hörlurar | Mikrofon
- Sony läcker uppgifter i rättegång – så stort är Call of Duty15
- Nvidia: "Energieffektiva RTX 4060 sparar hundralappar"37
- MSI Geforce RTX 4060 Ventus 2X OC – bra prestanda vid 1080p men medioker kylare47
- Veckans fråga: Vilket operativsystem föredrar du?84
- Bilar med smarta inslag ger fler dumma fel63
- Noctua släpper monteringsram för "deliddade" Ryzen 7000-processorer15
- Nvidias nästa arkitektur för Geforce kommer år 202558
- Microsoft vill strömma Windows från molnet72
- Starfield utvecklas med AMD:s välsignelse153
- Telekombranschen: "Smarta glasögon ersätter telefoner inom fem år"88
Externa nyheter
Spelnyheter från FZ
- Över tre miljoner exemplar av Final Fantasy XVI har skeppats och sålts idag
- Sony råkar avslöja spelbudgetar och annat på grund av dålig märkpenna idag
- Alan Wake och CoD: Kallt krig snart på PS Plus igår
- Red Dead Redemption åldersmärkt igen i Korea – det spekuleras i remaster igår
- Fallout London flyttas för att slippa Starfield-konkurrensen igår