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 но делает ту же проверку страницы, чтобы он запускался только на этой конкретной странице.

Другие вопросы по тегам