Obține postarea după numele paginii sau slug
Știu că pare foarte avangardist, dar urmărește-mă. Am citit că se poate interoga o pagină după numele sau slug-ul acesteia. Încerc să fac asta pentru că am nevoie de informații dintr-o pagină cu un titlu/slug similar și nu voi avea posibilitatea de a obține ID-ul paginii (decât dacă există o metodă de a converti un titlu în ID).
Am încercat mai multe variante fără succes. Aceasta pare cea mai rezonabilă abordare, dar pur și simplu nu funcționează.
<?php
$args = array(
'pagename' => 'CM-145',
'post_type' => 'page',
'posts_per_page' => 1,
'numberposts' => 1
); ?>
<div>
<?php
query_posts( $args );
get_template_part( 'loop' );
wp_reset_query();
?>
</div>
The Loop
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php if ( is_front_page() ) { ?>
<h2 class="entry-title"><?php the_title(); ?></h2>
<?php } else { ?>
<h1 class="entry-title"><?php the_title(); ?></h1>
<?php } ?>
<div class="entry-content">
<?php the_content(); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pagini:', 'twentyten' ), 'after' => '</div>' ) ); ?>
<?php edit_post_link( __( 'Editează', 'twentyten' ), '<span class="edit-link">', '</span>' ); ?>
</div><!-- .entry-content -->
</div><!-- #post-## -->
<?php comments_template( '', true ); ?>
<?php endwhile; // sfârșitul loop-ului. ?>
Am încercat și 'name' => 'CM-145'
, nu sunt sigur dacă aceasta este metoda corectă sau rezonabilă de a efectua această acțiune. În final, am nevoie doar să obțin thumbnail-ul și excerpt-ul paginii, așa că dacă ai o idee mai bună nu ezita să-mi spui.
Mulțumesc anticipat.
Salut @Zach Shallbetter:
Dacă am înțeles corect întrebarea ta, încerci să rezolvi problema folosind funcții de tematică atunci când de fapt ai nevoie să utilizezi mai mult din API-ul WordPress. Următorul cod poate fi copiat într-un fișier test.php
și rulat folosind http://siteultau.com/test.php
pentru a vedea cum funcționează (presupunând că înlocuiești http://siteultau.com
cu domeniul propriu al site-ului tău, desigur!) Apoi citește comentariile pentru a vedea unde să plasezi codul pentru utilizarea pe site:
<?php
// Funcția ar trebui să fie introdusă în fișierul functions.php al temei tale
function get_excerpt( $post_id ) {
$post = get_post( $post_id );
$excerpt = $post->post_excerpt;
return ( post_password_required($post) ? false :
apply_filters( 'get_the_excerpt', $excerpt ) );
}
include('../wp-load.php');
// Acest cod se plasează acolo unde ai nevoie să obții și să afișezi rezumatul și imaginea redusă
$post = get_page_by_path('CM-145');
$excerpt = get_excerpt($post->ID);
$thumbnail = get_the_post_thumbnail($post->ID);
?>
<div style="width:300px">
<span style="float:right;"><?php echo $thumbnail; ?></span>
<?php echo $excerpt ?>
</div>
De asemenea, sunt puțin îngrijorat că poate suferi de sindromul "ciocan și cui"; adică atunci când ai o problemă și ai doar un ciocan, tratezi problema ca pe un cui, când poate ai nevoie de un șurubelniță?
Mai exact, mă îngrijorează faptul că folosești o Pagină pentru ceva care ar trebui să fie fie pur și simplu o Opțiune, fie poate cel puțin un Tip Personalizat de Postare? Poți să explici mai în detaliu cazul tău de utilizare și de ce ai ales să folosești o Pagină?

Absolut, în prezent lucrez la http://redesign.openeye.net. Am configurat produsele ca pagini și toate celelalte elemente adiționale ca articole (videoclipuri, software, documente etc.) Aceste elemente (articole) sunt categorizate după numărul modelului, astfel încât mai multe articole pot fi asociate cu același număr de model. Avem o situație în care un client vizitează pagina de suport, alege categoria din meniul derulant și apoi vede o listă cu „articolele” asociate cu acel produs. Ceea ce aș dori să fac este să extrag imaginea și descrierea paginii produsului pentru a le afișa în partea de sus a acestei pagini.

De asemenea, folosesc intens tipuri de postare personalizate, câmpuri și taxonomii. Foarte puțin din acest site este generat manual. Și, scuzați stilurile inline peste tot, încă lucrez la design.

@Zach Shallbetter - De ce să nu creezi tipuri de postare personalizate 'product'
și 'add-on'
?

Pentru că ar intra în conflict cu listările de categorii și am investit o cantitate imensă de timp, așa că nu este rentabil până când nu încep să rezolv erorile. De asemenea, legătura permanentă este mai frumoasă http://redesign.openeye.net/products/recorders/e-series/oe2-e480

De dragul posterității, sunt încă curios de ce codul lui, care ar trebui să funcționeze (și care, întâmplător, funcționează pentru mine), nu funcționează.

Simte-te liber să corectezi deducțiile mele. În general, navighez la întâmplare prin întregul acest proces.

@Zach Shallbetter - Este complet posibil să ai URL-uri "frumoase" cu tipuri personalizate de postări, doar pentru informare.

schimbă get_template_part( 'loop' );
în get_template_part( 'loop','page' );
sau inserează manual un loop direct în acel șablon și vezi dacă aceasta este problema. codul tău este în rest corect.
*edit- presupun că fișierul tău loop are niște verificări condiționale pentru a determina cum să afișeze postările în diferite contexte care nu sunt îndeplinite de interogarea ta pentru pagină, de aceea nu se afișează nimic.

Da, am crezut și eu că e corect, dar nu vrea să returneze niciun rezultat. Nici măcar pagina din template. Chiar și la minim ar trebui să returneze titlul paginii. Mă întreb dacă nu cumva lipsește altceva.

Am creat o pagină cu titlul "CM-145" și am copiat/lipeșt codul tău. Când inspectez $wp_query, într-adevăr este returnat, dar bucla pe care ai postat-o aici nu funcționează fără apelul la the_post();
mai întâi. Ca verificare rapidă, aș face print_r($wp_query);
pentru a vedea dacă e o problemă de interogare sau de buclă.
