当使用<!--nextpage-->标记对页面进行分页时,如何自定义第二个和后续页面样式?

时间:2016-07-27 作者:alam7o

我想在中为第二页应用不同的样式single.php 或帖子。我该怎么做?

我有以下代码single.php 将页面拆分为两部分:

<!--nextpage-->
如果有其他方法可以添加另一个“选项卡”到帖子或类似内容,我非常感谢您的帮助……我只想在帖子中添加一个“自定义页面”,就像帖子的图库一样,因此URL可以如下所示:

http://localhost/mysite/1024/postname/gallery/
http://localhost/mysite/1024/postname/custom-page/
代码输入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();?>

3 个回复
最合适的回答,由SO网友:Andy Macaulay-Brook 整理而成

WordPress已经将类添加到正文中,以便您处理此问题,只要您的主题正确使用body\\u class模板标记。

在第页的第2页上,您的身体将有以下附加课程:paged, paged-2 &;page-paged-2, 因此,您可以看到可以更改样式以适应:

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

body.paged {
    background: green;
    color: red;
}
Core通过以下逻辑实现这一点:

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;
}
如果您想在第一次使用不同的HTML,可以在模板中调整此逻辑&;后续页面。

SO网友:Michae Pavlos Michael

如果您知道帖子ID,那么可以使用自定义CSS将该特定正文作为目标。例如,如果自定义页面的id为99,则可以设置自定义样式表,并在所有选择器前面加上前缀:

身体postid-99

显然,这取决于你的主题。如果你的主题在body标签中使用了不同的类(不是posid-99),你必须相应地更改选择器。

。。。或

将正确的样式表放入主题函数中。例如:-

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\');
我没有检查上面的代码,但希望它能帮助你找到你需要的地方。

SO网友:lfreitas

如果我理解正确,您希望为新页面创建不同的模板。

如果是这样的话,你需要复制单曲。php的主题(最好是子主题)并使用Template Hierarchy 以替代默认的单个。php和新的。

获取要执行此操作的页面的ID,将文件复制一次。php并重命名为single-ID.php,用页面ID更改“ID”,现在您可以编辑single-ID.php,更改将只应用于该页面如果要应用于多个页面,可以创建新模板并为其添加名称。然后,您可以在所有想要的页面的页面编辑中选择它,而不是按id进行。这取决于您使用的主题。

相关推荐

Bad pages redirection

我有一个wordpress网站,只有一个私人页面(只能由登录用户查看)我在主题函数中使用以下代码。每次将页面URL放在浏览器上时,php都会重定向到登录页面。add_action( \'wp\', \'redirect_private_page_to_login\' ); function redirect_private_page_to_login(){ $queried_object = get_queried_object(); if (