将php文件加载到特定的页面ID

时间:2018-05-16 作者:David Sanchez

我正在尝试将一个php文件分配给一个特定的页面?

我有modals存储在不同的文件中,希望在调用指定页面时加载它们。这些页面使用相同的主题;投资组合;。

如果我这样做:

<?php $id="page-id-8229"; include \'/modals/work/cplfModals.php\';?>
对于公文包模板中的每个文件,每个页面仍将加载所有分配的modal,而不仅仅是我尝试分配给该页面的modal。

有没有办法试试这个functions.php?

编辑:很抱歉我不清楚,所以我会显示页面。

下面是带有图像按钮的公文包页面示例:sample portfolio page.抱歉,如果您无法查看该链接,它仍在服务器上,尚未启动。

所有;“工作”;页面将保留模式按钮。所有这些页面都将是同一页面模板的副本。因此,如果有一堆模态挂在我的标题中,那么负载就不会受到影响,我认为将模态正确地编目并仅在需要时调用会很好,有点像数据馈送(我想象)。

在我的主题中,有一个名为“em”的文件夹;情态动词对于此页面,我们需要调用/modals/work/thunderModals.php 对于page-id-1270.

我还没有实施最后2条建议,但我将开始实施。感谢所有在这方面提供帮助的人。非常感谢您抽出时间。

因此,我通读了wp层次结构,并在那里寻找如何正确地瞄准蛞蝓,我发现:

<?php echo get_page_template_slug( $post->ID ); ?>
我回到我的portfolio.php 模板(这是我所有工作/子页面的shell)。因此,我附加了一个“include”。现在我有了这样的东西:

<?php get_page_template_slug(\'page-id-1270\'); include \'/modals/work/thunderModals.php\';?>
似乎很有效,所以我在其他页面上又添加了几行。But 当我找到另一个portfolio.php-主题页面,我可以看到所有的情态动词都被加载了,包括其他页面的情态动词。New question:

Can this line of code be modified so that the files will remain specific to their page?

2 个回复
SO网友:Filcp

如果我对您的理解正确,一个好的解决方案是使用页面slug检查您所在的页面,然后包含所需的文件。你可以在你的主题功能上这样做。php或插件,这取决于您想要实现什么。为此,可以使用以下脚本:

if (is_page(\'slug_of_the_page\')) {
    include \'path-to-the-file\';
}
现在,如果您真的想通过其ID来定位页面,那么可以创建一个函数,该函数使用您正在使用的页面模板中的动作挂钩,甚至可以在那里添加您自己的动作挂钩。然后使用$wp_query 并使用switch语句检查id是否是您想要的id,并包括该文件。请参见以下脚本:

function add_specific_page_file() {
    global $wp_query;
    switch ($wp_query->post->ID) {
        case \'page_id\':
            include \'path-to-the-file\';
            break;

        case \'another_page_id\':
            include \'path-to-another-file\';
            break;

        case \'one_more_page_id\':
            include \'path-to-one-more-file\';
            break;
     }
}
add_action( \'my_action\', \'add_specific_page_file\' );
[编辑]您可以将is\\U页面与前面的功能集成,并使用init 操作钩子,在WordPress完成加载后但在发送任何头之前激发。

function add_specific_page_file() {
    if (is_page(\'slug_of_the_page\')) {
        include \'path-to-the-file\';
    } elseif (is_page(\'another_page_slug\')) {
        include \'path-to-another-file\';
    }
} 
add_action( \'init\', \'add_specific_page_file\' );

SO网友:Tom J Nowell

Use the template hierarchy, you can name files in your theme so that they load in specific circumstances.

E、 g.模板category-unicorns.php 将在使用slug的类别上使用unicorns

结束

相关推荐

PHP“Use”在模板中不起作用

我正在尝试从中实现代码this site 在代码中,以下行导致错误,并且未加载我的页面--use \\Aws\\Polly\\PollyClient; 如果我注释掉代码,那么页面加载很好,除了我尝试使用的脚本无法工作之外,我没有收到任何错误。代码似乎相当标准的php,所以我想知道这是否是因为它是wordpress,我需要做一些其他的事情来使用-“使用”?完整代码---//include_once (\'/polly/aws-autoloader.php\'); require_