我有一个使用 PHP 编写的内容管理系统 GetSimple 的网站。我根据需要对其进行了编辑,但是,在标题中,这是应该存在的:
<title><?php get_page_clean_title(); ?> - <?php get_site_name(); ?></title>
问题是我是捷克人,我必须使用特殊字符(á、é、í、ó、ú、ů、ě、š 等),如果您打开我的网站并查看源代码,您会看到:
<title>Tomáš Janeček - osobní web - Tom**áš** Janeček | Personal Website</title>
而不是“Tomáš Janeček - osobní web - Tom* áš * Janeček | 个人网站”。困扰我的是那些 HTML 实体,它们只在标题的第二部分。á 代表“á”,š 代表“š”。我知道它不应该伤害 SEO,但我这样做是为了保持代码清晰。
有没有办法对其进行解码,或者只是将 get_site_name() 更改为一些更好的函数,这些额外的字符不会有问题?我不想要代码中的实体。我认为不应该编辑这个具体的 .php 文件以使其成为我想要的样子,但是,我希望它可以在这个文件中以某种方式简单地解决。CMS 包含数十个 .php 文件,我不确定应该搜索什么。我在“可疑”文件中查找了一些带有 PHP 实体的代码,但没有发现任何对我有帮助的东西。如果需要,可以在这里下载整个 CMS
提前感谢您的帮助。
编辑1:// ---------------------------------------------- --------------------------------------
当然,我包含了这个元数据。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
不,我不使用任何数据库。这将伴随着学习 Joomla!:)
我想强调一下,标题有 2 个部分 - get_page_clean_title() 和 get_site_name(),它们都包含我的全名,并且只有一个在源代码中使用 HTML 实体显示它。
我在另一个文件中找到了这些函数:
第一个是不将 HTML 实体放入源代码的那个 - 这就是我想要的第二个函数。
function get_page_clean_title($echo=true) {
global $title;
$myVar = strip_tags(strip_decode($title));
if ($echo) {
echo $myVar;
} else {
return $myVar;
}
}
SECOND 函数做了它应该做的事情,但是它给出了带有 HTML 实体的输出,这就是问题所在。
function get_site_name($echo=true) {
global $SITENAME;
$myVar = trim(stripslashes($SITENAME));
if ($echo) {
echo $myVar;
} else {
return $myVar;
}
}
上述两个函数都在同一个文件中。
我试图将有问题的函数替换为可以将变量名称更改为正确值的函数,但是它根本停止工作:/
所以,总而言之,整个页面是好的,除了一个地方没有HTML实体——标题的后半部分带有get_site_name函数。
此外,问题仅存在于源代码中。最后显示没问题。
感谢您迄今为止的回复,我很高兴收到如此快速和有价值的回复。我非常感谢。