Ich habe diese benutzerdefinierte Suchfunktion, um benutzerdefinierte Metaschlüssel in WordPress zu durchsuchen. Die Funktion funktioniert gut.
Die URLs aller Bilder, die ich mit erweiterten benutzerdefinierten Feldern zu meinem Beitrag hinzugefügt habe, werden jetzt jedoch in die Anhangs-ID geändert.
Dies sollte laut der Einstellungsseite in ACF nicht passieren:
Dasselbe Feld funktioniert auch auf anderen Seiten, nur nicht auf der Suchergebnisseite. Überprüfen Sie, wie sich die Bildquelle in den Suchergebnissen ändert:
Wie und warum wird hier die Bild-URL in die Attachment-ID geändert? Bitte überprüfen Sie meinen Code unten:
function custom_search_function($pieces) {
// filter to select search query
if (is_search() && !is_admin()) {
global $wpdb;
$custom_fields = array('regio','provincie');
$keywords = explode(' ', get_query_var('s'));
$query = "";
foreach ($custom_fields as $field) {
foreach ($keywords as $word) {
$query .= "((mypm1.meta_key = '".$field."')";
$query .= " AND (mypm1.meta_value LIKE '%{$word}%')) OR ";
}
}
if (!empty($query)) {
// add to where clause
$pieces['where'] = str_replace("((({$wpdb->posts}.post_title LIKE '%", "( {$query} (({$wpdb->posts}.post_title LIKE '%", $pieces['where']);
$pieces['join'] = $pieces['join'] . " INNER JOIN {$wpdb->postmeta} AS mypm1 ON ({$wpdb->posts}.ID = mypm1.post_id)";
//$pieces['groupby'] = "{$wpdb->posts}.ID";
}
}
return ($pieces);
}
add_filter('posts_clauses', 'custom_search_function', 20, 1);
BEARBEITEN: Hier ist der Code, der meine Post-Ergebnisse anzeigt, das Feld “foto” ist das Feld, das für die Anzeige des Bildes verantwortlich ist:
<?php foreach( $posts as $post ):
//fusion-column-last, or none for normal class
$lastclass="";
if(++$counter % 2 === 0) {
$lastclass=" fusion-column-last";
}
setup_postdata( $post )
?>
<div class="fusion-one-half fusion-layout-column fusion-spacing-yes<?php echo $lastclass?>" style="margin-top:0px;margin-bottom:20px;background-color:white;">
<div class="fusion-column-wrapper">
<div class="bw-search-picture">
<?php $postid = get_the_ID(); ?>
<?php //echo $postid; ?>
<img src="https://stackoverflow.com/questions/30783914/<?php the_field("foto', $postid); ?>" alt="<?php the_title(); ?>"/>
</div>
<div class="bw-search-content">
<h2>
<a class="green" href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
</h2>
<p class="bw-regio">Regio <?php the_field('regio'); ?></p>
<p>
<a style="color:#9C9E9F;" href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">LEES VERDER ></a>
</p>
</div>
</div>
</div>
<?php endforeach; ?>
Haben Sie den Code, in dem Sie ausgeben, was von der Abfrage zurückgegeben wird?
– BenEgan1991
11. Juni 2015 um 14:55 Uhr
Hallo BenEgan, Ja, ich habe diesen Code zum OP hinzugefügt
– Forz
11. Juni 2015 um 15:15 Uhr