gpt4 book ai didi

php - WordPress 插件激活/停用功能未触发

转载 作者:行者123 更新时间:2023-11-29 10:11:00 25 4
gpt4 key购买 nike

我必须为 WordPress 做一些目录插件,但我已经在激活/停用它时遇到了麻烦。这是我的代码。它应该有效。此代码仅测试激活/停用的代码,但考虑到文档,这应该有效,而且似乎我找不到合理的论据,为什么这没有触发。有哪位好心人可以看一下代码吗?提前致谢

<?php
register_activation_hook( __FILE__, 'plus8k_activate' );
register_deactivation_hook( __FILE__, 'plus8k_deactivate' );

function plus8k_activate()
{
global $wpdb;

$table_name = $wpdb->prefix . "plus8k_products";

$charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name tinytext NOT NULL,
description text NOT NULL,
meta tinytext NOT NULL,
content text NOT NULL,
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
status bool DEFAULT 'true' NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );

$table_name = $wpdb->prefix . "plus8k_media";

$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name tinytext NOT NULL,
caption text NOT NULL,
location tinytext NOT NULL,
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
prod_id mediumint(9) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (prod_id)
REFERENCES " . $wpdb->prefix . "plus8k_products(id)
ON DELETE CASCADE
) $charset_collate;";

dbDelta( $sql );
}

function plus8k_deactivate()
{
global $wpdb;

$table_name = $wpdb->prefix . "plus8k_products";

$charset_collate = $wpdb->get_charset_collate();

$sql = "DROP TABLE $table_name";

dbDelta( $sql );

$table_name = $wpdb->prefix . "plus8k_media";

$sql = "DROP TABLE $table_name";

dbDelta( $sql );
}

例如,如果我删除函数并仅从 plus8k_activate 外部函数复制代码,则会创建表。我不知道为什么注册的钩子(Hook)没有触发 plus8k_activate 函数。

编辑!激活失败,因为 sql 错误( bool 值默认必须为 1 或 0,它无法识别 true/false)

现在激活工作,但停用却不起作用,尽管sqls没问题,我已经用phpmyadmin尝试过了。需要弄清楚这一点。

最佳答案

确保从插件的主文件(例如sample-plugin/sample.php)调用此函数。

或者尝试匿名函数回调以确保您没有出现任何拼写错误等。

register_deactivation_hook(__FILE__, function () {
//something here like
die('today');
});

当您停用插件时,必须运行此代码。请从那里获取它并在其中添加您的功能。

关于php - WordPress 插件激活/停用功能未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50968839/

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