【发布时间】:2012-09-09 02:58:25
【问题描述】:
我想在发布帖子时运行 sql 查询。我只是不确定如何将它包装在一个函数中,以及在哪里粘贴该函数以在我单击发布时生效。 以下命令是我需要的,它在 phpMyAdmin-SQL 中成功运行,并且在我的 wordpress 后端也正确反映。
INSERT INTO `databasename`.`wp_xxxxxx` (
`id` ,
`name` ,
`item_number` ,
`price` ,
`options_2`) VALUES (
'9', 'xxxx1', 'xxxx2', 'xxxxx3', 'xxxx4'
);
但是,当我每次保存帖子时,如何在我的 functions.php 文件中让它在 PHP 中运行? 我尝试了以下方法,但我确信它是正确的,因为我之后进行了刷新并且没有创建表:
function do_my_stuff($post_ID) {
mysql_query("INSERT INTO `databasename`.`wp_xxxxx` (
`id` ,
`name` ,
`item_number` ,
`price` ,
`options_2`) VALUES (
'9', 'xxxx1', 'xxxx2', 'xxxx3', 'xxxxx4'");
return $post_ID;
}
add_action('save_post', 'do_my_stuff');
发布帖子时。它实际上是一个需要一些细节的产品。
这是我想要填充的 sql 查询的值。
- id = 帖子的 postID 号。
- name = 帖子标题
-
item_number = 它应该是一个自定义字段发布元值,即将到来 从一个名为“代码”的字段中,目前我通过以下方式在我的单页模板上回显它:
ID,'代码',真))回声 do_shortcode(get_post_meta($post->ID, 'scode', $single = true)); ?> -
price = 价格,我也通过自定义字段手动输入 称为“价格”,我目前通过以下方式回应:
options_2,我也通过自定义字段值手动输入 称为“变体”。
这一切都可以这样吗?
可能是这样的:
INSERT INTO `databasename`.`wp_cart66_products` (
`id` ,
`name` ,
`item_number` ,
`price` ,
`options_2`) VALUES (
'9', '<?php the_title(); ?>', '<?php if ( get_post_meta($post->ID, 'scode', true) ) echo do_shortcode(get_post_meta($post->ID, 'scode', $single = true)); ?>', '<?php $values = get_post_custom_values("price"); echo $values[0]; ?> ', '<?php $values = get_post_custom_values("variations"); echo $values[0]; ?> '
);
请注意,我不太了解 php 或 SQL。我花了几个小时试图找到尽可能多的信息来提供可靠的请求。
【问题讨论】:
-
作为 WP 的新手,相当努力。请记住阅读手册并学习 WP 特定的数据库查询和面向对象的方法。问候。