在哪里可以找到用于呈现定义了短码和模板的页面的代码?

时间:2015-08-30 作者:rycornell

我是WP的新手,正在尝试在WP站点上配置“我的帐户”页面。该网站使用付费会员资格Pro(PMP)插件。在WP admin console>页面中,有一个名为“我的帐户”的页面。页面内容为“[pmpro\\U帐户]”,这是PMP帐户页面的短代码。据我所知,短代码最终由pmpro\\U帐户呈现。php页面。但是,该页面上的代码与您浏览该页面时看到的代码不匹配。在进一步挖掘之后,我注意到该页面使用了一个名为“我的帐户”的模板:

Page Template Selector

我找到了模板(myaccount page.php),它就是这样做的:

get_template_part( \'loop\', \'myaccount\' );

然后找到循环页面(loop myaccount.php),它只执行以下操作:

...<?php the_content(); ?>...

在搜索了所有文件后,我找到了一个帐户。php,其中包含我在浏览页面时看到的实际内容。WordPress是如何知道如何呈现此页面的?当有页面、短代码和模板时,WP如何确定生成的内容?

1 个回复
SO网友:Will

很好的侦查。这个SO网站上的每个人都曾在WordPress模板层次结构中遇到过类似的情况。

不过,你可能会倒过来想。找到的所有步骤都会引导您返回到短代码[pmpro_account]loop-myaccount.php 通过以下方式the_content().

该短代码在其code base 像这样:

add_shortcode(\'pmpro_account\', \'pmpro_shortcode_account\');
这告诉WordPress:当你看到[pmpro_account] shortcode,运行调用的函数pmpro_shortcode_account. 在同一个文件的顶部,有一个名为pmpro_shortcode_account(). 该函数包含所有HTML和逻辑。

看起来他们没有办法通过过滤器覆盖代码,但我从未使用过这个插件,所以我不能肯定。他们有一个所有可用挂钩和过滤器的列表in their docs.

如果情况变得更糟,您需要更改HTML输出。您可以从编辑器中删除shortcode调用,并尝试复制pmpro_shortcode_account() 在您的loop-myaccount.php 样板

相关推荐

retrieve post details in loop

我编写了一个函数来循环浏览用户的帖子,我试图按状态显示每个帖子,并为每个状态组显示不同的消息。出于某种原因-get\\u post\\u status不起作用,其他任何挂钩也不起作用。有人能帮忙吗?我甚至试着暂时缩短函数,只是回显变量,看看它们在做什么,它只是空白。function user_item($type, $tax, $term_name, $term_id) { if (!is_user_logged_in()) return; $args = array(