it-swarm.com.de

Mehrere Bedingungen für den Titel der untergeordneten Seite

Ich habe versucht, mit bedingten Tags zu arbeiten, und kann dieses Problem nicht in den Kopf bekommen. PHP Anfänger hier.

Auf Unterseiten muss ich den Titel der übergeordneten Seite sowie den Seitentitel anzeigen. Ich habe es damit zu arbeiten:

<h1><?php echo get_the_title($post->post_parent);?></h1>
<h2><?php the_title(); ?></h2>

Das Problem, das ich jetzt habe, ist, dass auf den übergeordneten Seiten der Seitentitel zweimal angezeigt wird, als der übergeordnete Seitentitel und der Seitentitel. Wenn ich mich auf einer übergeordneten Seite befinde, muss der h2 stattdessen "Eine Unterseite auswählen" anzeigen, wenn es untergeordnete Seiten gibt ... oder nichts anzeigen, wenn es keine untergeordneten Seiten gibt. Ich denke, so etwas ist möglich:

<h1><?php echo get_the_title($post->post_parent);?></h1>
<h2>
  <?php 
    if is_parent_page_without_children() {echo '';} ;
    elseif is_parent_page_with_children() {echo 'select a sub-page';} ;
    else the_title();
  ?>
</h2>
2
codeview

Ich fand dies im Codex für bedingte Tags , Abschnitt 2.12:

"Hinweis: Es gibt keine Funktion zum Überprüfen, ob eine Seite eine Unterseite ist. Wir können das Problem umgehen:

if ( is_page() && $post->post_parent > 0 ) { 
   echo "This is a child page";
}

Deshalb habe ich es wie folgt geändert und benutze einfach das Attribut "title_li" der Funktion "wp_list_pages", um "eine Unterseite auswählen" anzuzeigen (nicht genau das, wonach ich gesucht habe, aber einfach genug, und ich kann damit für das Design der Seite arbeiten Website, für die ich sie brauche).

<h1><?php echo get_the_title($post->post_parent);?></h1>
<h2><?php if (is_page() && $post->post_parent > 0 ) { the_title();}?></h2>

http://codex.wordpress.org/Conditional_Tags#A_PAGE_Page

1
codeview

Aufgrund des Kommentartauschs sind Sie meiner Meinung nach auf Folgendes angewiesen:

<h1><?php echo get_the_title( $post->post_parent ? $post->post_parent : $post->ID ) ?></h1>

<?php if ( $list = wp_list_pages( "echo=0&child_of=$post->ID" ) ) : ?>

    <h2>Select a sub-page</h2>
    <ul>
        <?php echo $list ?>
    </ul>

<?php elseif ( $post->parent ) : ?>

    <h2><?php the_title() ?></h2>

<?php endif ?>
1
TheDeadMedic
<?php if ( $post->post_parent ): ?>
<h1><?php echo get_the_title($post->post_parent); ?></h1>
<h2><?php the_title(); ?></h2>
<?php else: ?>
<h1><?php the_title(); ?></h1>
<?php if ( get_pages( array('child_of' => $post->ID) ) ): ?>
<h2>select a sub-page</h2>
<?php endif; ?>
<?php endif; ?>

So etwas sollte den Job machen. Nicht getestet, da einige Bugs/Tippfehler enthalten sein können.

0