gpt4 book ai didi

php - 如何在 wordpress 中使用外部类

转载 作者:行者123 更新时间:2023-12-03 17:15:24 24 4
gpt4 key购买 nike

要在 wordpress 中添加新功能,我知道我们必须这样做:

function favicon() {
// function code
}
add_action('wp_head', 'favicon');

我在 github 中发现了一个有趣的项目,它解析了 Google Analyitics 的 cookie,并通过它可以访问有关访问者访问的一些信息:来源、媒体、 session 等。

Google-Analytics-Cookie-Parser-PHP

但是当我将项目类转换为 wordpress 功能时,我的问题是什么?

我知道这可能是一个广泛的问题,但答案可能很短。例如从类在functions.php中的文件中插入一个php url包含

谢谢

编辑

Composer 创建的文件, 函数.php 也是主题的根源

------------------
  /THEME
/vendor
autoload.php
/composer
files of composer
/jflight
/gacookie
/src
/tests
other files
composer.json
composer.lock
function.php

函数.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' );

如何正确调用类(class)?
use Jflight\GACookie\GACookie;

Parse error: syntax error, unexpected 'use' (T_USE) in.. directory theme...functions.php on line 622
get_data_cookie s函数正确吗?

在我简单使用的主题的任何地方打印:
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)

最佳答案

PHP 应用程序的标准,无论它们是否是 WordPress 插件,都是您使用 Composer以满足依赖关系并利用 Composer 提供的自动加载。

注意项目Google-Analytics-Cookie-Parser-PHP有一个 composer.json GitHub 存储库中的文件?您可以充分利用这一点。还要注意(通过查看它的composer.json 文件)包的名称是"name": "jflight/gacookie"。 .所以名字是jflight/gacookie .

因此,如果您的目标是利用此类提供的功能,以下是建议的下一步操作列表,这些操作将使您到达您需要的位置:

  • 点评:https://getcomposer.org/
  • 在您的个人计算机上安装 Composer。

  • 安装 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 添加的任何其他依赖项从命令行,也将自动变为可用,因为 vendor/autoload.php当/如果您自己的 PHP 文件中的代码尝试使用否则会丢失的 PHP 类时,文件将自动加载它们。这就是为什么它被称为“自动”装载机。

    WordPress:当您将它安装到 WordPress 中时,您应该上传所有内容,包括整个 vendor/目录及其内容。这些现在是您插件的依赖项。

    关于php - 如何在 wordpress 中使用外部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47111774/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com