如何在WordPress插件中从PHP脚本调用外部函数?

时间:2015-12-18 作者:samdi

我是WordPress的初学者,我曾尝试开发插件,但我不知道如何在WordPress插件中调用外部函数。例如,我有一个名为download的外部PHP脚本。php中有多个函数。要包含此文件,我调用require_once (download.php);, 但我不知道如何调用下载中的函数。php。例如,我想调用一个函数download ($filename, $time, $ban_user), 其中:$filename是文件路径,$time是1到60分钟,$ban\\u user是禁用的用户id。为此,我进行了编码

add_shortcode (\'dloader\', \'download_file\');
function download_file ($atts){ 
    // I don\'t know how to code continued here //
}
请指导我编码的方法,我不是一个专业的程序员。

<小时>

add_shortcode( \'dloader\', \'download_file\' );

// generate shortcode [dloader filename="http://google.com"]
// the result is <a href="http://myweb.com/123456abc/">Download</a>
// where: 123456abc is the crypted parameter for the url http://google.com

function download_file( $atts, $content = null ) {
    require_once ( \'download.php\' );
    // the original function: download ( $filename, $time, $ban_user ) { }
    extract( shortcode_atts( array(
        \'filename\' => \'\',
        \'time\'     => \'\',
        \'ban_user\' => \'\',
    ), $atts ) );
    if ( empty( $filename ) ) {
        return \'ERROR\';
    }
    if ( empty( $time ) ) {
        $time = 60;
    }
    if ( empty( $ban_user ) ) {
        $ban_user = 0;
    }
    // value 0 is default, not banned
    $default = \'<div class="dloader">\';
    //execute the function download() in the file download.php
    $default .= \'<a href="\' .download( $filename, $time, $ban_user ). \'">Download</a>\';
    return $default;
}

1 个回复
SO网友:Omar Tariq

通常,当我们必须在WordPress帖子和页面中做一些事情时,我们会使用短代码。尽管它们也可以在其他地方使用。假设您知道如何使用短代码,那么您可能需要这样做:-

<?php
/**
 * Plugin Name: Learning To Code WordPress
 */

defined(\'ABSPATH\') or die("No script kiddies please!");

require_once ( dirname(__FILE__) . "/download.php");

add_shortcode (\'dloader\', \'download_file\');
function download_file($atts) { 

    /* Default filename. */
    $default[\'filename\'] = \'defaultFileName.txt\';
    /* Default time. */
    $default[\'time\'] = 0;
    /* Default user id. */
    $default[\'ban_user_id\'] = 1;

    $atts = shortcode_atts( $default , $atts, \'dloader\' );

    $filename = $atts[\'filename\'];
    $time = $atts[\'time\'];
    $ban_user_id = $atts[\'ban_user_id\'];

    return download($filename, $time, $ban_user_id);

}
现在在帖子或类似这样的页面中使用快捷码:-

[dloader filename="abc.txt" time=10 ban_user_id=1]

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请