所以我不熟悉Web开发,并希望开始为Wordpress开发主题。
我对自己的HTML和CSS技能充满信心,但我有点不了解PHP如何专门为Wordpress工作。
为了直截了当,当我从wordpress.org下载基本主题并查看所有模板文件时,我看不到任何HTML代码。
我熟悉php中的get函数等等,但是看主题开发的视频/教程让我很困惑。
例如,我观看的大部分教程都显示有人将HTML代码从静态Web模板直接复制并粘贴到PHP文件中。 (index.php等)。它是有效的,我被告知这是一个正确的方法,但我不明白为什么我不能在我下载的wordpress主题中看到HTML代码。
有没有办法不显示HTML?
提前谢谢你......
答案 0 :(得分:1)
html代码在PHP文件中。有多种方法可以在PHP文件中编写HTML。例如
<?php
echo "<html><h1>header</h1></html>";
?>
将上述代码保存为PHP并在服务器上运行您将从PHP文件中获取html输出。
您也可以按以下方式运行
<?php
//your first php code here//
?>
<html>
my html here
</htm>
<?php
//your second php code here//
?>
这是在php文件中编写html代码的正确方法。你不能在html文件上运行php代码,所以html代码应该写在PHP文件上。
========问题答案==========
这是您提到的主题:https://github.com/WordPress/twentyseventeen
检查index.php文件 https://github.com/WordPress/twentyseventeen/blob/master/index.php
你会看到
get_header(); ?>
<div class="wrap">
<?php if ( is_home() && ! is_front_page() ) : ?>
<header class="page-header">
<h1 class="page-title"><?php single_post_title(); ?></h1>
</header>
这种类型的编码。
<h1 class="page-title"><?php single_post_title(); ?></h1>
仔细看看这条线。 <h1 class="page-title">
它是一个html标记(它是html代码)
您可以在电脑上下载主题并打开index.php文件和其他文件。你会看到HTML代码,但它与PHP混合在一起。
答案 1 :(得分:0)
我建议您在本地主机上安装WAMP。
Wordpress的PHP文件会改变它的运行方式,但除非你知道自己在做什么,否则我不建议你编辑它们。
如果您在WAMP上安装Wordpress,您将可以访问所有这些内容,还可以在WAMP上设置特定项目以开发和测试您的主题。
时,有一个很好的步骤答案 2 :(得分:0)
基本上你用Wordpress模板做的是使用HTML来保存你从PHP获得的信息,例如页面/帖子标题,内容,标签,类别等。你可以做类似的事情
<h1 class="title-class"><?php get_the_title();?></h1>
答案 3 :(得分:0)
没有办法隐藏html,也没有必要这样做。 但是,如果你仔细看看wp-content - &gt;主题文件夹,您将看到所有主题目录。
在那里你可以找到html“代码”。在某些情况下,您将找不到任何.html文件,可能是。
它的原因因为wordpress主题的所有页面都包含至少一个像标题一样的动态部分。所以要使html页面动态化,你需要为文件而不是.html或.htm设置.php扩展名。
你会发现更少的HTML和更多的PHP有时因为大多数wordpress主题使用可重复使用的片段和生成一些代码块的函数编码。
但是.hp代码与.php文件中的php代码混合:
例如:
<html>
<head>
<title><?php get_the_title(); ?></title>
<?php get_custom_css_files(); ?>
</head>
<body class="container">
<div class="col-md-8 text-center">
<?php foreach($posts as $post) {
<div class="title"><?php echo post['title']; ?></div>
<div class="desc"><?php echo post['text']; ?></div>
<?php } ?>
</body>
</html>