【问题标题】:Using PHP to write Shortcodes in Wordpress Posts使用 PHP 在 Wordpress 帖子中编写简码
【发布时间】:2014-04-07 12:35:26
【问题描述】:

我想使用 php 助手将简码发布到我的 WP 页面。这最终将包含变量,但现在我只想在页面呈现时解析短代码。

我有下面的 PHP 可以正确地为我的页面呈现表格...

<?
require_once( 'http://mywebsite.com/wp-load.php' );

$therm_sponsor = "[thermometer raised=0 target=1000]";
$therm_expenses = "[thermometer raised=0 target=1000]";

echo '<table>';
echo '<tbody>';
echo '<tr align="center" valign="middle">';
echo "<td>". do_shortcode($therm_sponsor) ."</td>";
echo "<td>". do_shortcode($therm_expenses) ."</td>";
echo '</tr>';
echo '<tr align="center" valign="middle">';
echo '<td>Funds Raised </td>';
echo '<td>Expenses Covered </td>';
echo '</tr>';
echo '</tbody>';
echo '</table>';

?>

然后我在我的帖子中使用插件 Shortcode Exec 包含此内容,该插件本身使用简码将 PHP 包含在页面正文中。

但是,当我加载页面时,我看到了这个表格,其中包括上面两个简码的文本版本。换句话说,php 正确输出了 html,但包含的短代码不会被 Wordpress 视为短代码。

仅供参考,这两个短代码用于温度计跟踪捐赠的插件。

虽然这似乎是一种迂回的方式,但主要原因是我以后可以使用 php 将动态变量添加到温度计简码中。

为了清楚起见,这里是我使用的步骤...

  • 在 PHP Exec 插件中包含 PHP 帮助程序
  • 使用 PHP Exec 短代码在我的页面上调用它
  • 加载页面确实会从 php 帮助程序中渲染出我的 html 表格,但表格中的两个简码不会被 Wordpress 视为简码,而是以文本形式呈现

如何通过 Wordpress 解析第二层简码?

编辑:代码已更新。错误Fatal error: Call to undefined function do_shortcode()

【问题讨论】:

    标签: php wordpress shortcode


    【解决方案1】:

    如果我正确理解你的问题,那么你需要这样的东西:--

    用以下内容替换您的以下行:-

    echo "<td>". do_shortcode($therm_sponsor) ."</td>";
    echo "<td>". do_shortcode($therm_expenses) ."</td>";
    

    这将根据您的简码执行操作..


    如果您的帮助文件在 WordPress 之外,那么您需要在帮助文件的最顶部添加 require_once( 'YOUR_WORDPRESS_DIRECTORY_PATH/wp-load.php' );...

    在你的助手中包含这个文件后,你可以在你的助手中使用WordPress的任何功能......

    【讨论】:

    • 谢谢:) 但是 do_shortcode 会产生错误Fatal error: Call to undefined function do_shortcode()。这是因为我的 PHP 助手不在 Wordpress 生态系统中吗?
    • 啊,我很接近...我试图包含functions.php。虽然当我按照你说的做时,我仍然得到函数错误。
    • 更新:同样的错误Fatal error: Call to undefined function do_shortcode()我仔细检查了路径。
    • 好的,我让它工作了。我将 'require_once' 从 PHP 帮助程序移到了include 'http://mywebsite.com/pathto/helper.php';上方的 PHP Exec 插件@
    • 好的,没问题...我认为路径问题不大...顺便说一句,它现在可以正常工作...
    猜你喜欢
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多