0

我写了一个用于显示数据的短代码,它只用于一个页面(即:使用full-width-page-template.php 的PAGEX )。简码功能非常庞大。

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

4

1 回答 1

3

您可以随时检查您所在的页面: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');

或者只是删除对 a 的需要shortcode,然后直接运行逻辑/代码等,functions.php但执行相同的页面检查,以便它只在该特定页面上运行。

于 2018-08-13T14:57:46.697 回答