Olen yrittänyt käyttää kodin ”esillä olevaa kuvaa” (blogihakemisto) ilman onnea. Se ” ne toimivat jokaisella sivulla, mutta se ei toimi kotona.

Koodi näyttää tältä:

// Don"t use on single posts if (!is_single()) { if (is_home()) { if (function_exists("wp_get_attachment_thumb_url")) { $img = wp_get_attachment_image_src(get_post_thumbnail_id(),"full"); $featured_image = $img[0]; } } else { if (function_exists("wp_get_attachment_thumb_url") && has_post_thumbnail()) { $img = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),"full"); $featured_image = $img[0]; } } if ($featured_image) { ?> // A lot of code... <?php } } 

Yritin jo hankkia pikkukuvan _thumbnail_id -metan avulla. Sama tulos.

Tämä koodi on sijoitettu Uskon, että funktiotiedostossa ongelma on siinä, että se yrittää saada silmukan / viestien esittelykuvan.

Kiitos paljon etukäteen.

Vastaa

jos viitat ”viestisivulle”, yritä sitten (näytetään vain koodisi asiaankuuluva osa):

if (is_home() && get_option("page_for_posts") ) { $img = wp_get_attachment_image_src(get_post_thumbnail_id(get_option("page_for_posts")),"full"); $featured_image = $img[0]; } else { 

Vastaus

Ehdotan, että joku, joka tekee tämän, harkitsee seuraavia muutoksia:

  1. Hae nykyisen sivun / viestin / hakemiston tunnus käyttämällä get_queried_object(). blogihakemisto, joka on asetettu sivulle, palauttaa oikean sivun tunnuksen.
  2. Jos haluat vain täysikokoisen kuvan, käytä wp_get_attachment_url() wp_get_attachment_image_src()

Tässä pikatoimintoa käytän tämän saavuttamiseksi yksinkertaisemmalla tavalla:

/** * Custom Featured Image */ function custom_featured_image() { $queried_obj = get_queried_object(); // Don"t use on single posts (JUST FOR THIS DEMO) if ( is_single() ) return; // Get the featured image ID $image_id = get_post_thumbnail_id( $queried_obj->ID ); // Get the URL for the full sized image $image_src = wp_get_attachment_url( $image_id ); return $image_src; } 

Haluan henkilökohtaisesti välttää liiallista sisäkkäistä ehdollista logiikkaa. Funktion käyttäminen voi auttaa tässä.

Vastaa

Sinulla on kaksi nopeaa vaihtoehtoa mallitiedoston kautta käyttämällä the_post_thumbnail -silmukkaa. Oletan, että tulostat tiedot tyypillisessä blogimuodossa, joten yllä oleva toimintosi ei toimi tai toimi hyvin outoa silmukan sisällä.

Kokeile sen sijaan jotain tällaista todellisessa mallitiedostossa, jossa pääsilmukka on (ehkä index.php tai loop.php):

 //loop starts if ( has_post_thumbnail() ) { the_post_thumbnail(); } //the_content(); and other stuff //loop ends 

Tai jos haluat käyttää toimintoa pääpiirin muuttamiseen, voit käyttää pre_get_posts, esimerkiksi function.php-tiedostossa.

Jotain:

add_action( "pre_get_posts", "add_featured_image" ); function add_featured_image( $query ) { if( $query->is_main_query() && $query->is_home() ) { //your image code } } 

Huomaa, että yllä tarkastetaan 2 parametria, pääkysely ja kotisivu, on erittäin tärkeää tarkistaa, onko se pääkysely, muuten se muuttaa kaikkia kyselyitä.

Viite: http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

kommentit

  • Sinulla ei ole ' ei lue kysymystä kunnolla, käyttäjä ei halua ' halua saada blogiviestejä silmukkaan, hän haluaa sivun suositellun kuvan, joka määritetään Blogin hakemistosivulle, minkä haluan myös tehdä. has_post_thumbnail() näyttää toimivan hyvin sivulla.php, mutta palauttaa false, kun sitä käytetään hakemistossa index.php

vastaus

Tämä toimii ..

<section style="background-image: <?php if (is_home() && get_option("page_for_posts") ) { $blog_home_id = get_option( "page_for_posts" ); echo "url(".get_the_post_thumbnail_url($blog_home_id, "full").")"; } else { echo "url(".get_the_post_thumbnail_url($post->ID, "full").")"; } ?>;"> 

Toivottavasti tämä auttaa!

Vastaa

Kun olet ”viestisivulla”, $ -viesti alkaa silmukan ensimmäisellä ”viestillä”. Yksi tapa voisi olla ”kysytyn objektin” käyttäminen.

Tulosta $ wp_query ja näet: [kyselty_objekti] [viestit] [viesti] – huomautus: kyselty_objekti tulee / voi olla tyhjä joillakin sivuilla

// get_the_post_thumbnail_url( get_queried_object(), "fullsize" ); // or function ABC_get_the_thumbnail_url() { $queried_object = get_queried_object(); $thumbnail_url = get_the_post_thumbnail_url( $queried_object, "fullsize" ); if ( ! $thumbnail_url ) { return get_template_directory_uri() . "/your-path/default-image.jpg"; // or from a default option } return $thumbnail_url; } 

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *