我是WP的新手,正在尝试在WP站点上配置“我的帐户”页面。该网站使用付费会员资格Pro(PMP)插件。在WP admin console>页面中,有一个名为“我的帐户”的页面。页面内容为“[pmpro\\U帐户]”,这是PMP帐户页面的短代码。据我所知,短代码最终由pmpro\\U帐户呈现。php页面。但是,该页面上的代码与您浏览该页面时看到的代码不匹配。在进一步挖掘之后,我注意到该页面使用了一个名为“我的帐户”的模板:
我找到了模板(myaccount page.php),它就是这样做的:
get_template_part( \'loop\', \'myaccount\' );
然后找到循环页面(loop myaccount.php),它只执行以下操作:
...
<?php the_content(); ?>
...
在搜索了所有文件后,我找到了一个帐户。php,其中包含我在浏览页面时看到的实际内容。WordPress是如何知道如何呈现此页面的?当有页面、短代码和模板时,WP如何确定生成的内容?
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
样板