Bilder sind in den Suchergebnissen nicht sichtbar

Lesezeit: 3 Minuten

Benutzer-Avatar
Forza

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:

ACF-Bildfeldeinstellungen

Dasselbe Feld funktioniert auch auf anderen Seiten, nur nicht auf der Suchergebnisseite. Überprüfen Sie, wie sich die Bildquelle in den Suchergebnissen ändert:

Bildquelle in Anhangs-ID geä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

Benutzer-Avatar
Hakem

Versuchen Sie es mit dem Thumbnail:

$imgsrc = wp_get_attachment_image_src(get_post_thumbnail_id( $post_id ));
echo $imgsrc[0];

Bearbeiten, verwenden Sie diesen Code mit der Anhangs-ID:

$imgsrc = wp_get_attachment_image_src(get_field('foto', $postid));
echo $imgsrc[0];

  • Danke, aber das funktioniert nicht. Das Bild, das ich anzuzeigen versuche, ist nicht das Miniaturbild des Beitrags, sondern ein Bild, das über ACF zugewiesen wurde. Mit diesem Code wäre die Bildquelle einfach leer

    – Forz

    11. Juni 2015 um 15:18 Uhr

  • Wenn Sie eine Anhangs-ID haben, können Sie meinen Code mit Ausnahme des Teils get_post_thumbnail_id verwenden. Was in Ihrem Code gedruckt wird, ist die Anhangs-ID?

    – Hakem

    11. Juni 2015 um 15:21 Uhr

  • Es ist die Anhangs-ID, ja.

    – Forz

    11. Juni 2015 um 15:28 Uhr

  • @forza Jetzt ausprobieren, $imgsrc[0] ist die endgültige URL

    – Hakem

    11. Juni 2015 um 15:31 Uhr


  • Super, ich habe es jetzt zum Laufen gebracht 🙂 Vielen Dank! Der endgültige Code lautet:

    – Forz

    11. Juni 2015 um 15:36 Uhr

Anstatt zu verwenden

<img src="https://stackoverflow.com/questions/30783914/<?php the_field("foto', $postid); ?>" />

Versuchen Sie es mit

<?php $foto_url = get_field('foto', $postid); ?>
<img src="https://stackoverflow.com/questions/30783914/<?php echo $foto_url; ?>" />

  • Vielen Dank, aber dies zeigt immer noch nur die Bild-ID (aus der Medienbibliothek) im SRC an.

    – Forz

    11. Juni 2015 um 15:26 Uhr

1352840cookie-checkBilder sind in den Suchergebnissen nicht sichtbar

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy