要在wordpress中添加新功能,我知道我们必须做这样的事情:
function favicon() {
// function code
}
add_action('wp_head', 'favicon');
我在github中找到了一个有趣的项目,该项目解析了Google Analyitics的cookie,并且我可以访问有关访问者访问的一些信息:来源,媒体,会话等。
Google-Analytics-Cookie-Parser-PHP
但我的问题是,我将项目类转换为wordpress函数?
我知道这可能是一个广泛的问题,但答案可能很短。例如,从类在functions.php
中的文件中插入一个php url include感谢
修改
作曲家创建的文件 function.php 也是主题的根源
------------------
/THEME
/vendor
autoload.php
/composer
files of composer
/jflight
/gacookie
/src
/tests
other files
composer.json
composer.lock
function.php
function.php
require_once dirname(__FILE__).'/vendor/autoload.php';
function get_data_cookies(){
use Jflight\GACookie\GACookie;
//utma
$utma->time_of_first_visit; // DateTime
$utma->time_of_last_visit; // DateTime
$utma->time_of_current_visit; // DateTime
$utma->session_count // Integer
// utmz
$utmz->timestamp; // DateTime
$utmz->session_count // Integer
$utmz->campaign_number // Integer
$utmz->source // string
$utmz->medium // string
$utmz->campaign // string
$utmz->term // string
$utmz->content // string
}
add_action( 'wp_head', 'get_cookies' );
如何正确调用课程?
use Jflight\GACookie\GACookie;
Parse error: syntax error, unexpected 'use' (T_USE) in.. directory theme...functions.php on line 622
get_data_cookie
的功能是否正确?
在我只是使用的主题上的任何地方打印:
echo $utmz->source;
或者我应该以某种方式提及这个功能?
-------更新------
require get_template_directory().'/vendor/autoload.php';
use Jflight\GACookie\GACookie;
function get_cookies(){
$utma = GACookie::parse('utma');
$utmz = GACookie::parse('utmz');
var_dump( $utma );
var_dump( $utmz );
//utma
$args = $utma->time_of_first_visit; // DateTime
$args = $utma->time_of_last_visit; // DateTime
$args = $utma->time_of_current_visit; // DateTime
$args = $utma->session_count; // Integer
// utmz
$args = $utmz->timestamp; // DateTime
$args = $utmz->session_count; // Integer
$args = $utmz->campaign_number; // Integer
$args = $utmz->source; // string
$args = $utmz->medium; // string
$args = $utmz->campaign; // string
$args = $utmz->term; // string
$args = $utmz->content; // string
}
以我正在提出的主题的联系方式
<?php get_cookies() ?>
但它正在回归:
bool(false)bool(false)
答案 0 :(得分:2)
PHP应用程序的标准,无论它们是否是WordPress插件,都是使用Composer来满足依赖关系并利用Composer提供的自动加载功能。
请注意,项目Google-Analytics-Cookie-Parser-PHP在GitHub仓库中有一个composer.json
文件?你可以充分利用这一点。另请注意(通过查看其composer.json
文件)包的名称为"name": "jflight/gacookie"
。所以名称是jflight/gacookie
。
因此,如果您的目标是利用此课程提供的功能,以下是一个建议的下一步操作列表,可以帮助您达到所需的目标:
安装Composer后,从终端(命令行)输入:
$ cd /path/to/local/project/dir
$ composer require jflight/gacookie
自动下载类文件并将它们全部放入名为vendor/
的项目目录中的特殊文件夹中。它还将在项目目录中创建一个composer.json
文件。
现在,您可以利用名为自动加载的Composer功能。要利用您在命令行中所需的新依赖项,请将以下行添加到PHP文件中,这是您在提出此问题时开始的位置。
<?php
require_once dirname(__FILE__).'/vendor/autoload.php';
function favicon() {
// Refer to the class documentation.
// You can now use the class here to achieve something.
}
add_action('wp_head', 'favicon');
提示:值得注意的是,您通过从命令行键入composer require something/else
添加的任何其他依赖项也将自动变为可用,因为{{当/如果你自己的PHP文件中的代码试图使用原本会丢失的PHP类时,文件将自动加载它们。这就是为什么它被称为&#39; auto&#39;加载器。
WordPress:当您将其安装到WordPress中时,您应该上传所有内容,包括整个vendor/autoload.php
目录及其内容。这些现在是你的插件的依赖。