我在WordPress主题上使用自定义的HTML CSS菜单。由于我不知道如何从后端开始工作(根本),我试图在页面标题的帮助下隐藏菜单项。
我发现$single_post_title
是WordPress中的页面标题。所以我尝试使用以下代码隐藏菜单项。我也将它用于其他菜单项。
<?php
$port = "Portfolio";
if ($port != $single_post_title) {
$port = "Portfolio";
} else {
?>
<style type="text/css">
#portfolio{
display:none;
} </style>
<?php
}
?>
菜单代码:
<div class="col-md-9" class="fancymenu">
<a id="#portfolio" href="/Portfolio/"><?php echo $port ?></a>
<a id="#about" href="/About-Me/"><?php echo $about ?></a>
<a id="#contact" href="/Contact-me/"><?php echo $contact ?></a>
</div>
当我继续玩这个时,有时会隐藏(当替换时!= = =)&amp;有时它没有。
我希望有人可以帮我解决这个问题。
谢谢堆!
答案 0 :(得分:2)
如果你不介意,我会稍微挑选你的代码(别担心,这是为了帮助你!)
你正在处理一些问题(并将要处理)。首先,如果你打算使用它,我会认真考虑坚持使用WordPress生态系统,除非你带着它Headless。
除此之外,让我们继续吧。通常,您不应该依赖自己当前范围中未定义的变量。谁知道$single_post_title
的定义位置,或者甚至是什么。
WordPress有一些相对“很好”命名的PHP函数可以与帖子和页面进行交互(其中许多将作为Google的第一个搜索结果显示为“在WordPress中获取当前页面标题”)
获取页面/帖子标题的标准方法是使用get_the_title()
功能。
另一个问题是,如果你有权访问元素的源代码,加载一些CSS来隐藏元素是非常麻烦的,只是有条件地跳过元素!
最后,一般来说,ID不需要(或者更确切地说,不应该)在他们面前有一个英镑符号。针对他们的语言将把它放在那里。还需要考虑的是,您的硬编码href
属性具有大写字母,就像是slug
和title
的组合。我会澄清什么是。
所有我想到的,我会删除您拥有的第一个代码块,并用以下内容替换菜单代码:
<?php $current_page_title = get_the_title();
echo '<div class="col-md-9" class="fancymenu">';
if( $current_page_title != 'Portfolio' ) echo '<a id="portfolio" href="/Portfolio/">Portfolio</a>';
if( $current_page_title != 'About Me' ) echo '<a id="about" href="/About-Me/">About Me</a>';
if( $current_page_title != 'Contact Me' ) echo '<a id="contact" href="/Contact-me/">Contact Me</a>';
echo '</div>';
?>
您可以通过简单的循环更轻松地进行维护:
<?php
// Get the current Page Title
$current_page_title = get_the_title();
// Define our Pages as an Array
$pages = array( 'Portfolio', 'About Me', 'Contact Me' );
// Loop through that array
foreach( $pages as $page ){
if( $current_page_title != $page ){
// In here, it means the "page" from the array isn't the "current page"
// that's being viewed, so echo out the item.
echo '<a id="'. sanitize_title( $page ) .'" href="'. sanitize_title( $page ) .'">'. $page .'</a>';
}
}
?>
请注意,现有的循环会将您的ID替换为about
about-me
。
所以,既然你已经读完了那些东西 - 我真的考虑学习WordPress功能是如何工作的,因为Navigation Menu功能为你处理所有这些东西(以及更多),以及将使维护该网站在未来更容易。您当前的方法更像是一个HTML / PHP模板,它仅使用WordPress作为CMS来管理页面/帖子内容,除非是设计的,否则以后会变得很麻烦。