我正在开发一个网站,我需要做很多手工工作(点击页面和设置模板等),所以我想为什么不自动化它。我已登录PHPMyAdmin并找到了我想要更改的MySQL数据库中的位置。
它由两部分组成,即' wp_postmeta'和' wp_posts'。我有一个包含所有' post_id'的文本文件。我想要访问的内容以及我想要将页面更改为的内容。如有必要,我可以将其转换为arrat。
SELECT *
FROM `wp_postmeta`
WHERE `post_id` =x
AND `meta_key` LIKE '_wp_page_template'
AND `meta_value` LIKE 'template-blank-4.php'
SELECT*
FROM `wp_posts`
WHERE `post_id` =x
我尝试做的是做一个循环或一系列if / else语句,可以访问我的帖子编号并设置其页面内容。我将分别执行两个操作(分别设置内容和设置页面模板)。 我该如何开始?
这是我想要达到的极其粗糙的问题;
Array =(1,2,3,4...1200)
Array2=("string1", "string2", "string3"..."string1200")
for (array[i], i<1200) {
SELECT*
from 'wp_posts'
where post_id=i
set post_content="array2[i]"
SELECT*
from 'wp_postmeta'
where post_id=i
AND `meta_key` LIKE '_wp_page_template'
SET `meta_value` TO 'template-blank-4.php'
}
任何有关这方面的帮助都会有很大的帮助
答案 0 :(得分:0)
就像Bvcm在评论中所说,你不应该通过phpMyAdmin这样做,而是使用PHP脚本。由于您似乎想要进行数据导入,我认为mysqli extension对您来说是最简单的方法。没有必要使用WP_Query unsless你想在wordpress中重用这个导入,例如一个插件。 如果可能,请将您的ID和内容放在一个数组中:
$data = array(1 => "string1", 2 => "string2", 3 => "string3", ... 1200 => "string1200")
如果您已经这样做,您的PHP代码可能如下所示:
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
foreach ($data as $id => $content) {
$query_posts = "UPDATE wp_post
SET post_content = '".$content."'
WHERE post_id = ".$id;
mysqli_query($link, $query_posts);
$query_meta = "UPDATE wp_postmeta
SET meta_value = 'template-blank-4.php'
WHERE post_id = ".$id."
AND meta_key = '_wp_page_template'";
mysqli_query($link, $query_meta);
}
mysqli_close($link);