Én már szerencsétlenül próbáltam használni az otthoni „kiemelt képet” (a blog indexét). s minden egyes oldalon működik, de nem működik az otthoni használatra.

A kód így néz ki:

// 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 } } 

Már megpróbáltam megszerezni az indexképet a _thumbnail_id meta használatával. Ugyanaz az eredmény.

Ez a kód elhelyezve a függvényfájlban úgy gondolom, hogy az a probléma, hogy megpróbálja megszerezni a loop / posts kiemelt képet.

Előre is nagyon köszönöm.

Válasz

ha a “bejegyzések oldalára” hivatkozik, akkor próbálkozzon (a kód csak a megfelelő szakasza látható):

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 { 

Válasz

Javasolnám, hogy bárki, aki ezt csinálja, vegye figyelembe a következő beállításokat:

  1. Szerezze be az aktuális oldal / bejegyzés / index azonosítóját a get_queried_object() használatával. blog index, amely egy oldalra van állítva, a helyes oldalazonosítót adja vissza.
  2. Ha csak a teljes méretű képet akarja, akkor a wp_get_attachment_url() szót használja a wp_get_attachment_image_src()

Itt egy gyors funkciót használok ennek egyszerűbb megvalósításához:

/** * 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; } 

Én személy szerint szeretném elkerülni a túlzott beágyazott feltételes logikát, ebben egy függvény használata segíthet.

Válasz

Két gyors lehetőséged van, a sablonfájlon keresztül, a ciklus the_post_thumbnail használatával. Feltételezem, hogy az adatokat tipikus blogformátumban adja ki, és így a fenti funkciója nem fog működni vagy nagyon furcsán fog működni a cikluson belül. (esetleg index.php vagy loop.php):

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

Vagy ha egy műveletet szeretne használni a fő hurok megváltoztatásához, használhatja a pre_get_posts, például a functions.php fájlban.

Valami hasonló:

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

Vegye észre, hogy a fenti két paraméter, a fő lekérdezés és a kezdőlap ellenőrzése, nagyon fontos ellenőrizni, hogy ez-e a fő lekérdezés, különben az összes lekérdezést megváltoztatja.

Hivatkozás: http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

Megjegyzések

  • Van menete ' nem olvassa el rendesen a kérdést, a felhasználó nem akarja ' beolvasni a blogbejegyzéseket, hanem az oldal kiemelt képét szeretné, t a Blog index oldalához rendeltem, amit én is meg akarok csinálni. Úgy tűnik, hogy a has_post_thumbnail() jól működik az page.php oldalon, de az index.php fájlban használva false -et ad vissza

Válasz

Ez működik.

<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").")"; } ?>;"> 

emélem, ez segít!

Válasz

Amikor a “bejegyzések oldalon van”, a $ bejegyzés a ciklus első “bejegyzésével” kezdődik. Ennek egyik módja lehet a “lekérdezett objektum” használata.

Nyomtassa ki a $ wp_query fájlt, és látni fogja: [lekérdezett_objektum] [bejegyzések] [bejegyzés] – megjegyzés: a lekérdezett objektum egyes oldalakon üres lehet / lehet

// 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; } 

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük