Wordpress

时间:2016-09-16 15:35:52

标签: php wordpress

我想弄清楚如何在WordPress中进行计算。我不想要“计算器”,但我想显示计算结果。

我已经有一个与自定义帖子类型相关联的名为[days]的自定义值。我需要某处存储[rate]的全局值以及解决计算的方法。

我希望能够拥有[shortcode evaluate =“([rate] / 2)* [days]”之类的内容,以便我可以显示最终值。然后,我可以更改[费率],并反映在我的网站上。

我希望不必编写任何PHP,主要是因为它不是我最喜欢的语言,但我希望这可以重复使用,并且可以在Wordpress和插件的更新中使用。

我安装了Pagelines Framework,我有WP-Types为我的自定义类型提供自定义字段。我一直在搜索Pagelines,WP-Types和Wordpress的论坛和文档,但是无法解决这个问题。听起来应该已经存在了......

我是否需要创建自定义插件?或者有什么我可以利用的吗?

更新

我已经尝试过创建一个插件,但我无法让我的PHP工作。

完整档案:https://github.com/nkdAgility/wp-calculate-rate/blob/master/wp-calculate-rate.php

function nkdCalculate_shortcode($atts,$content=null) { <---Line 16
    $content = wpv_do_shortcode($content);
    $content = eval("return $content;");
    return $content;
}

add_shortcode('nkd-calculate', 'nkdCalculate_shortcode');

function nkdCalculate_rate_shortcode($atts) {
   return wget_option('my_rate');
}

add_shortcode('nkd-rate', 'nkdCalculate_rate_shortcode');

?>

不幸的是,我的代码总是出错:

  

解析错误:第16行/nas/content/staging/nakedalmweb/wp-content/plugins/wp-calculate-rate-1/wp-calculate-rate.php中的语法错误,意外“功能”(T_FUNCTION)

为什么功能出乎意料?

1 个答案:

答案 0 :(得分:2)

我有以下代码激活:

<?php
/**
* Plugin Name: nkdAgility Rate Calculator
* Description: Tell Us What Your Shortcode Does
* Version: 0.6
* Author: MrHinsh
* Author URI: https://nkdagility.com
*/

function nkdCalculate_shortcodes_init() {
    function nkdCalculate_shortcode($atts,$content=null) { 
    $content = wpv_do_shortcode($content);
    $content = eval("return $content;");
    return $content;
}

add_shortcode('nkd-calculate', 'nkdCalculate_shortcode');

function nkdCalculate_rate_shortcode($atts) {
   return wget_option('my_rate');
}

add_shortcode('nkd-rate', 'nkdCalculate_rate_shortcode');

}
add_action('init', 'nkdCalculate_shortcodes_init');
?>

专门将短代码函数封装在一个名为&nbsp; nkdCalculate_shortcodes_init&#39;的函数中。然后告诉wordpress何时使用add_action初始化你的短代码(&#39; init&#39;,&#39; nkdCalculate_shortcodes_init&#39;);

如果你看一下https://developer.wordpress.org/plugins/shortcodes/basic-shortcodes/,它会解释更多关于如何在wordpress之后初始化短代码。

希望有所帮助