wake-up-neo.net

verwenden von the_permalink, um ein href in ein <li> zurückzugeben

Ich versuche, ein Menü zu erstellen, das automatisch aus einem benutzerdefinierten Beitragstyp ausgefüllt wird, und ich habe einige Probleme, es richtig zu machen. Wenn jemand mich in die richtige Richtung lenken könnte, wäre ich sehr dankbar dafür. Hier ist der Code. Das PHP im <img src> ruft die richtigen Informationen ab und steckt sie an der richtigen Stelle ab. the_permalink ruft die richtige URL ab, setzt dann aber die URL über das <li> -Tag und nicht in die href.

<ul class="product-menu">
              <?php
              $products = new WP_Query(
                $args = array(
                  'post_type' => 'product',
                  'post_status' => 'publish',
                )
              );
              while ( $products->have_posts() ) {
                $products->the_post();
                $post_thumbnail_id = get_post_thumbnail_id();
                $post_thumbnail_url = wp_get_attachment_url( $post_thumbnail_id );
                echo 
                '<li>
                  <a href="' . the_permalink() . '">
                    <img src="' . $post_thumbnail_url . '" alt="' . get_the_title() . '">
                  </a>
                </li>';
              } 
              /* Restore original Post Data */
              wp_reset_postdata();?>
              </ul>
2
mrben522

the_permalink() druckt url sofort aus und gibt nichts zurück. Sie sollten die Funktion get_the_permalink() verwenden, diedie aktuelle Post-URL zurückgibt.

5
ScheRas

Sie haben den_Permalink verwendet, der wiedergegeben wird, sodass Sie in einem Echo wiedergegeben wurden. Sie möchten get_the_permalink anrufen, um die URL zurückzugeben, die dann in den Code zurückgegeben werden kann. Die meisten WordPress-Funktionen, die mit the_ beginnen, werden direkt auf die Seite ausgegeben, die mit get_ geben das Ergebnis zurück.

Dies sollte für Sie arbeiten. Ich habe auch das_post_thumbnail verwendet, um ein WordPress-formatiertes Thumbnail-Bild zu erstellen und das Problem mit dem Hyperlink zu aktualisieren.

<ul class="product-menu">
    <?php

    $args = array(
        'post_type' => 'product',
        'post_status' => 'publish',
    )

    $products = new WP_Query($args);

    while ( $products->have_posts() ) {
        $products->the_post();

        echo '<li><a href="' . get_the_permalink() . '">';

        // check if the post has a Post Thumbnail assigned to it.
        if ( has_post_thumbnail() ) {
            the_post_thumbnail();
        }

        echo '</a></li>';
    } 
    /* Restore original Post Data */
    wp_reset_postdata();

    ?>
</ul>
3
Chris Morris