简体   繁体   English

在WordPress中获取当前页面名称

[英]Get Current Page Name in WordPress

In a WordPress header.php file, is there a way to reduce this : 在WordPress header.php文件中,有没有一种方法可以减少这种情况:

<?php if (is_page('about')): ?>
<script type="text/javascript">var page = "about";</script>
<?php endif ?>

<?php if (is_page('contact')): ?>
<script type="text/javascript">var page = "contact";</script>
<?php endif ?>

<?php if (is_page('gallery')): ?>
<script type="text/javascript">var page = "gallery";</script>
<?php endif ?>

to

<script type="text/javascript">
var page = "<?php echo get_current_page() ?>";
</script>

OK, the slight rub here is that the is_page() function will return TRUE if the contained string is the Post Title OR the Post Slug ( WordPress Codex ). 好的,这有点is_page()如果所包含的字符串是Post Title或Post Slug( WordPress Codex ),则is_page()函数将返回TRUE。 So I will offer both solutions and you can pick which one works best for you. 因此,我将提供两种解决方案,您可以选择最适合您的解决方案。

<script type="text/javascript">
<?php $pageDetails = get_page(); ?>
var page_title = "<?php echo str_replace( '"' , '\"' , $pageDetails->post_title ); ?>";
var page_slug  = "<?php echo str_replace( '"' , '\"' , $pageDetails->post_name  ); ?>";
</script>

I included the str_replace() bit to ensure that any page names which include quotation marks will not break your Javascript. 我包括了str_replace()位,以确保任何包含引号的页面名称都不会破坏您的Javascript。

And, adjusted as per comments by David M, using JSON to make things a little safer... 并且,根据David M的评论进行了调整,使用JSON使事情更安全...

<script type="text/javascript">
<?php $pageDetails = get_page(); ?>
var page_title = <?php echo json_encode( $pageDetails->post_title ); ?>;
var page_slug  = <?php echo json_encode( $pageDetails->post_name  ); ?>;
</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM