如何在非 wordpress 页面中调用简码?
Posted
技术标签:
【中文标题】如何在非 wordpress 页面中调用简码?【英文标题】:How to call shortcode in non-wordpress pages? 【发布时间】:2018-06-16 20:28:52 【问题描述】:我目前(在我的本地主机上)在一个新的 wordpress 页面上工作,该页面使用来自插件的各种短代码。当我在 wordpress 仪表板中创建一个页面并在 html 编辑中插入一个短代码时,它工作正常。
但是,我现在从头开始创建了一个新页面 (home.php),我想将其用作我的起始页面,并且我想调用其中一个短代码,但它不起作用。当我在 html [the_shortcode] 中插入短代码时,文件只是将其作为文本输出返回。当我使用
<?php echo do_shortcode(‘[the_shortcode]’); ?>
页面显示不输出。
我对短代码还很陌生,所以我不确定我做错了什么。该文件是否可能需要位于特定文件夹中才能调用短代码或需要导入一些文件?
关于文件夹位置我都试过了:
C:\MAMP\htdocs\newwordpresspage
C:\MAMP\htdocs\newwordpresspage\wp-content\themes\newtheme
然后通过我的本地主机地址调用该文件。
谁能帮助如何成功调用短代码?
<?php
define( 'WP_USE_THEMES', false );
require( './wp-load.php' );
echo do_shortcode('[gd_advanced_search]');
?>
【问题讨论】:
非 wp 页面?你想访问 wp 之外的 wp 功能吗? 我的意思是我在 Atom 中从头开始创建的 php 文件不是在 wp 仪表板中创建的,但它当然位于 wp 文件夹中(参见原始帖子中的根目录) 我刚刚测试过,你的代码有效。 PHP 文件必须在 WP 根文件夹中(与wp-load.php
相同级别)。
【参考方案1】:
在你应该使用的 php 模板/主题文件中。
<?php echo do_shortcode('[the_shortcode]'); ?>
【讨论】:
我做到了!我只是注意到它已从我的原始帖子中删除,可能是因为我没有以正确的格式包装它 - 请再看一遍,我更新了 我注意到你在你的简码函数中把“'”放在了“'”的位置。请从我的答案中复制并粘贴行。 一秒钟我希望是这样,但它没有任何效果。我再次尝试将文件保存在两个位置,并通过我的本地主机地址打开它。奇怪的是,当我查看源代码(当我加载页面时)时,代码会在插入 php 行的位置停止。您还有其他解决方案的想法吗?非常感谢您的帮助! 我认为您的简码现在可以使用了。你能检查一下我认为你在 functions.php 中定义的“the_shortcode”吗?可能是函数有错误。 简码本身很好,因为当我通过 wordpress 仪表板创建新页面并编辑 html 代码以插入简码时,它可以正常工作,即它运行该功能。但是,我不想在那里创建页面(通常仅用于博客条目或内容)。我是否必须将 php 页面保存在特定位置或在 php 文件中包含任何特定内容?我正在为此失去理智;-)【参考方案2】:define( 'WP_USE_THEMES', false );
require( './wp-load.php' );
在您的 home.php 中添加这些行,现在您可以使用文件中的所有 WordPress 功能了。
关注一个对我来说很好用
我创建了一个简码test_code
并使用了这个plugin
[sc name="test_code"]
<?php
define( 'WP_USE_THEMES', false );
require( './wp-load.php' );
echo do_shortcode('[sc test_code]');
?>
【讨论】:
谢谢!我修改了 php 以包含它(请参阅原始帖子中的 EDIT 1),但它没有改变任何东西。该文件是否可能需要位于特定文件夹中? 检查我的答案,我认为您需要添加用于创建短代码的插件的前缀 插件中的短代码不需要任何前缀(我也不知道是哪些前缀),请参阅wpgeodirectory.com/docs/core-shortcodes Shame,我无法让它工作。我们还有什么可以尝试的吗? 问题解决了吗?以上是关于如何在非 wordpress 页面中调用简码?的主要内容,如果未能解决你的问题,请参考以下文章