wake-up-neo.com

Wie können beim Paginieren einer Seite mit dem Tag <! - nextpage -> die Stile der zweiten und der nachfolgenden Seite angepasst werden?

Ich möchte verschiedene Stile für eine zweite Seite in single.php oder Posts anwenden. Wie kann ich das machen?

Ich habe den folgenden Code in single.php, um die Seite in zwei Teile zu teilen:

<!--nextpage-->

Wenn es eine andere Methode gibt, um einen weiteren "Tab" zum Posten oder Ähnlichem hinzuzufügen, bin ich für jede Hilfe dankbar. Ich möchte meinem Posten nur eine "benutzerdefinierte Seite" hinzufügen - wie eine Galerie für einen Posten - also könnte die URL sei so:

http://localhost/mysite/1024/postname/gallery/
http://localhost/mysite/1024/postname/custom-page/

Code in single.php:

    <?php get_header();?>
 <main>
<?php get_sidebar() ?>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    <div id="post">

            <div class="top-single-movie">

            <div class="info">  
            <h3 class="title" id="post-<?php the_ID(); ?>">
            <a href="<?php the_permalink() ?>" rel="bookmark">
            <?php the_title(); ?></a>
            <?php if( get_field('date') ): ?>
             ( <?php the_field('date'); ?> )
            <?php endif; ?> 
            </h3>
            </div>


            <?php if(has_post_thumbnail()) :
            the_post_thumbnail('medium');
            else : 
            echo '<img src="'.get_bloginfo('template_directory').'/img/default.png">';
            endif;
            ?>

            </div><!-- End. top-single-movie -->


            <?php the_content(); ?>

            <?php 
    wp_link_pages( array(
        'before' => '<div class="page-link"><span>' . __( 'Pages:', 'tl_back' ) . '</span>',
        'after' => '</div>'
    ) ); 
?>

            <?php include (TEMPLATEPATH . '/php/single/tv-single-Rand.php'); ?>


            </div><!-- End. content-single-movie -->


            <p class="tags"><?php the_tags(); ?> </p> 



            <!--?php comments_template(); // Get comments.php template ?-->


            <?php endwhile; else: ?>
            <p> <?php _e('Sorry, no posts matched your criteria.'); ?> </p>
            <?php endif; ?>
            <!-- END Loop -->


            <ul class="navigationarrows"> 
            <li class="previous">
            <?php previous_post_link('&laquo; %link'); ?>
            <?php if(!get_adjacent_post(false, '', true)) 
            { echo '<span>&laquo;Previous</span>'; } ?>
            </li>
            <li class="next">
            <?php next_post_link('%link &raquo;'); ?>
            <?php if(!get_adjacent_post(false, '', false)) { echo '<span>Next post:</span>'; } ?> 
            </li>
            </ul><!-- end . navigationarrows --> 

    </div>

 </main>
<?php get_footer();?>
2
alam7o

WordPress fügt dem Body bereits Klassen hinzu, damit Sie dies tun können, sofern Ihr Theme das Template-Tag body_class korrekt verwendet.

Auf der zweiten Seite der Seite verfügt Ihr Körper über die folgenden zusätzlichen Klassen: paged, paged-2 & page-paged-2, damit Sie sehen können, dass Sie die Stile entsprechend ändern können:

body.page {
    background: black;
    color: white;
}

body.paged {
    background: green;
    color: red;
}

Core erreicht dies mit dieser Logik:

global $wp_query;

$page = $wp_query->get( 'page' );

    if ( ! $page || $page < 2 )
        $page = $wp_query->get( 'paged' );

    if ( $page && $page > 1 && ! is_404() ) {
        $classes[] = 'paged-' . $page;

        if ( is_single() )
            $classes[] = 'single-paged-' . $page;
        elseif ( is_page() )
            $classes[] = 'page-paged-' . $page;
        elseif ( is_category() )
            $classes[] = 'category-paged-' . $page;
        elseif ( is_tag() )
            $classes[] = 'tag-paged-' . $page;
        elseif ( is_date() )
            $classes[] = 'date-paged-' . $page;
        elseif ( is_author() )
            $classes[] = 'author-paged-' . $page;
        elseif ( is_search() )
            $classes[] = 'search-paged-' . $page;
        elseif ( is_post_type_archive() )
            $classes[] = 'post-type-paged-' . $page;
}

Sie können diese Logik in Ihren Vorlagen anpassen, wenn Sie auf den ersten und nachfolgenden Seiten anderes HTML verwenden möchten.

0

Wenn Sie die Beitrags-ID kennen, können Sie diesen bestimmten Text mit benutzerdefiniertem CSS als Ziel festlegen. Wenn Ihre benutzerdefinierte Seite beispielsweise eine ID von 99 hat, können Sie ein benutzerdefiniertes Stylesheet einrichten und allen Selektoren Folgendes voranstellen:

body.postid-99

Dies hängt natürlich von Ihrem Thema ab. Wenn Ihr Thema eine andere Klasse im Body-Tag verwendet (nicht .postid-99), müssten Sie die Auswahl entsprechend ändern.

...oder...

Stellen Sie das richtige Stylesheet in Ihren Designfunktionen bereit. zum Beispiel:-

function my_enqueue_scripts(){
    wp_register_style( 'my-css', "my-stylesheet.css" );
    wp_enqueue_style( 'my-css' );
}

if ( get_the_ID() == 99 )
    add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts');

Ich habe den obigen Code nicht überprüft, aber hoffentlich hilft er Ihnen, dorthin zu gelangen, wo Sie sein müssen.

Wenn ich das richtig verstehe, möchten Sie eine andere Vorlage für eine neue Seite erstellen.

In diesem Fall müssen Sie die single.php Ihres Themas (vorzugsweise in einem untergeordneten Thema) duplizieren und die Vorlagenhierarchie verwenden, um die standardmäßige single.php mit der neuen zu überschreiben.

  1. Holen Sie sich die ID der Seite, die Sie dies tun möchten
  2. Duplizieren Sie die Datei single.php und benennen Sie sie in single-ID.php um, indem Sie "ID" durch die Seiten-ID ersetzen
  3. Jetzt können Sie die single-ID.php bearbeiten und die Änderungen gelten nur für diese Seite.

Wenn Sie sich auf mehrere Seiten anwenden möchten, können Sie eine neue Vorlage erstellen und dieser einen Namen hinzufügen. Dann würden Sie es in der Seitenbearbeitung auf allen gewünschten Seiten auswählen, anstatt es nach ID zu tun. Dies hängt vom verwendeten Thema ab.

0
lfreitas