WordPress短代码仅适用于一页



我写了一个用于显示数据的短代码,它只在一个页面中使用(即:PAGEX使用全宽页面模板.php(。简码功能非常庞大。

function rj_mysh_shortcode() {
// Lots of lines of business logic
}
add_shortcode('rj_mysh', 'rj_mysh_shortcode');

每次调用网页时,我认为函数.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

您可以随时检查您所在的页面: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运行逻辑/代码等,但执行相同的页面检查,使其仅在该特定页面上运行。

最新更新