Получить имя текущей страницы в WordPress - PullRequest
2 голосов
/ 06 марта 2011

В файле 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 ?>

до

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

1 Ответ

5 голосов
/ 06 марта 2011

ОК, небольшая проблема здесь в том, что функция is_page() вернет ИСТИНА, если содержащаяся строка является заголовком сообщения или порцией сообщения ( Кодекс WordPress ). Поэтому я предложу оба решения, и вы сможете выбрать, какое из них лучше для вас.

<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>

Я включил бит str_replace(), чтобы любые имена страниц, содержащие кавычки, не нарушали ваш Javascript.

И с поправкой на комментарии Дэвида М., используя 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...