我是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;
}
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]