WordPress шорткод только для одной страницы
Я написал шорткод, который используется для отображения данных и используется только на одной странице (то есть: PAGEX использует full-width-page-template.php). Функция шорткода очень велика.
function rj_mysh_shortcode() {
// Lots of lines of business logic
}
add_shortcode('rj_mysh', 'rj_mysh_shortcode');
Каждый раз, когда вызывается веб-страница, я думаю, что functions.php вызывается и анализируется PHP. Я ищу решение, чтобы не тратить время на разбор чего-то бесполезного.
Я думал, что смогу создать шаблон TEMPLATE_PAGEX и переместить функцию туда.
TEMPLATE_PAGEX.php:
<?php
function rj_mysh_shortcode_template() {
// Lots of lines of business logic
}
include(locate_template('full-width-page-template.php'));
?>
В конце шорткод:
function rj_mysh_shortcode() {
return rj_mysh_shortcode_template()
}
add_shortcode('rj_mysh', 'rj_mysh_shortcode');
Это правильное решение?
Rr
1 ответ
Вы всегда можете проверить, на какой странице вы находитесь: http://developer.wordpress.org/reference/functions/is_page... is_page($pageID)
... и только запустить код, если на этой странице.
function rj_mysh_shortcode() {
if(is_page($pageID)) {
// Lots of lines of business logic
}
}
add_shortcode('rj_mysh', 'rj_mysh_shortcode');
или просто устранить необходимость в shortcode
и просто запустить логику / код и т. д. непосредственно из functions.php
но делает ту же проверку страницы, чтобы он запускался только на этой конкретной странице.