1

我正在为WordPress 网站创建页面模板。

在文件 newpagetemplate.php 我目前有这个代码,只有这个代码:

<html>
<body>
<?php
/*
Template Name: Salespage
*/
?>
<div>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php the_title(); ?>
        <?php the_content(); ?> 
    <?php endwhile; endif; ?>
</div>
</body>
</html>

我需要进行修改,设置边距、字体等的值。

在上面的代码中,我需要'html'和'body'标签吗?

(如果我去掉这些标签,应用此页面模板的页面仍然显示正常。)

4

5 回答 5

7

我不知道你为什么会收到这么多理论答案。对我来说,这似乎是一种无趣的浪费时间。

简单的答案是否定的

从您提供的代码来看,您似乎正在尝试构建自定义 Wordpress 主题。您需要将 doctype 和打开的 html/body 标记header.php放在footer.php. 然后,您从“销售页面”模板中提取页眉和页脚模板。它可能看起来有点像这样:

// header.php

<!DOCTYPE html>
<html>
    <head>
    <title>Your Title</title>

    <?php wp_head(); ?>
    </head>
<body>

// newpagetemplate.php

<?php get_header(); ?>

<div class="yourContent">
    <?php if (have_posts()) : ?>
        <?php while (have_posts()) : the_post(); ?>
            <?php the_title(); ?>
            <?php the_content(); ?> 
        <?php endwhile; ?> 
    <?php endif; ?>
</div>

<?php get_footer(); ?>

// footer.php

<?php wp_footer(); ?>
</body>
</html>
于 2012-07-31T14:47:21.090 回答
2

如果您谈论的是页面模板而不是站点模板,那么您不需要在页面模板本身中包含 html 或 body 标签,因为它将被包装在站点模板中。

于 2012-07-31T14:21:56.900 回答
0

试试这个

如果您使用过 wordpress 并创建新的模板页面

那么你的代码在下面

这是新的页面模板“销售页面”

        <div id="container" class="one-column">
            <div id="content">

            <?php


            /* Run the loop to output the page.
             * If you want to overload this in a child theme then include a file
             * called loop-page.php and that will be used instead.
             */

             get_template_part( 'loop', 'salespage' );
            ?>

            </div><!-- #content -->
        </div><!-- #container -->

<?php get_footer(); ?>

// 而你的循环页面是 loop-salespage.php

你的代码是

<?php
/**
 * The loop that displays a page.
 *
 * The loop displays the posts and the post content.  See
 * http://codex.wordpress.org/The_Loop to understand it and
 * http://codex.wordpress.org/Template_Tags to understand
 * the tags used in it.
 *
 * This can be overridden in child themes with loop-page.php.
 *
 * @package WordPress
 * @subpackage Twenty_Ten
 * @since Twenty Ten 1.2
 */
?>

<?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">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
                        <?php edit_post_link( __( 'Edit', 'twentyten' ), '<span class="edit-link">', '</span>' ); ?>
                    </div><!-- .entry-content -->
                </div><!-- #post-## -->

                <?php //comments_template( '', true ); ?>

<?php endwhile; // end of the loop. ?>
于 2012-07-31T14:33:46.977 回答
-1

是的,您仍然需要<html>and<body>标记,因为您的页面呈现为 HTML。所有有效的 HTML 都包含这些标签。同样不要忘记<!DOCTYPE html>在页面顶部添加有效的 HTML,并避免在较新的浏览器上触发所谓的 quirksmode。由于 HTML 结构不佳,这通常是作为预防措施触发的,并且开发人员通常很容易纠正。;)

于 2012-07-31T14:17:33.173 回答
-2

<html>不可以。和<body>元素类型的开始和结束标签是可选的。如果浏览器看不到它们,则它们是隐含的。

这是<html>元素类型的定义。请注意,开始和结束标签都是可选的。

这是<body>元素类型的定义。请注意,开始和结束标签都是可选的。

于 2012-07-31T14:20:21.487 回答