wordpress 钩子 新建一个PHP文件,然后执行sql查询和更新操作
在 WordPress 中,使用钩子(hooks)可以在特定的操作执行前或执行后执行自己的代码,可以用于添加额外的功能或修改现有功能。常见的钩子有两种类型:动作钩子(action hooks)和过滤器钩子(filter hooks)。
下面是一个示例 PHP 文件,其中演示了如何使用 WordPress 钩子执行 SQL 查询和更新操作:
<?php // 引入 WordPress 核心文件 require_once( dirname( __FILE__ ) . '/wp-load.php' ); // 动作钩子示例 function my_custom_action_hook() { global $wpdb; // 执行 SQL 查询 $table_name = $wpdb->prefix . 'posts'; $results = $wpdb->get_results( "SELECT * FROM $table_name" ); // 处理结果 foreach ( $results as $row ) { $result = []; $result = (array) $row; // 将标准对象转换为数组 // 在此处添加自定义代码 // ... // 更新数据 $data = array( 'post_title' => 'Hello World' ); $where = array( 'ID' => $result['ID'] ); $wpdb->update( $table_name, $data, $where ); } } add_action( 'wp_loaded', 'my_custom_action_hook' ); // 过滤器钩子示例 function my_custom_filter_hook( $content ) { global $wpdb; // 执行 SQL 查询 $table_name = $wpdb->prefix . 'posts'; $results = $wpdb->get_results( "SELECT * FROM $table_name" ); // 处理结果 foreach ( $results as $row ) { $result = []; $result = (array) $row; // 将标准对象转换为数组 // 在此处添加自定义代码 // ... // 更新数据 $data = array( 'post_content' => 'New Content' ); $where = array( 'ID' => $result['ID'] ); $wpdb->update( $table_name, $data, $where ); } return $content; } add_filter( 'the_content', 'my_custom_filter_hook' );
这个示例文件定义了两个函数,分别用作动作钩子和过滤器钩子的回调函数。在 my_custom_action_hook
函数中,首先执行 SQL 查询,然后处理结果并更新数据。该函数使用 add_action
函数将其添加到 wp_loaded
钩子中,在 WordPress 加载完成后执行。
在 my_custom_filter_hook
函数中,同样执行 SQL 查询并处理结果,但这次将结果作为参数传递给函数,用于修改输出内容。该函数使用 add_filter
函数将其添加到 the_content
钩子中,在 WordPress 输出内容前执行。