我已经设法用我所有帖子的某些预定义值填充自定义字段,但只有手动更新帖子,更改才会生效。
示例:
// Predefined variable and value
$page_description = "This is a sample value that will be put (echo $page_description) into a custom field";
// Echo Variable into Custom Field
echo \'<input type="text" name="custom-field-name" value="\'.$page_description.\'" />\';
上面的示例正如我所期望的那样工作。它将$page\\u description值插入到自定义字段中;所以当我去编辑那篇文章时,我会看到变量值。问题是,在当前的编辑屏幕中,如果我查看网站前端的帖子,即使我在编辑屏幕中看到,但该自定义字段尚未使用该变量值更新/保存。直到我更新了帖子,变量值才被永久保存。我有1800多个帖子需要更新。我需要一个解决方案来更新它们。
有人建议使用ajax自动更新所有现有帖子,以便将新的自定义字段值保存到帖子中。我读了一篇关于它的文章,但不知道怎么做。或者如果有我可以使用的插件。我想在这方面得到一些帮助。
感谢您对此的任何意见!
UDPATE 6-23-11:
这是我插入主题自定义字段文件的编码:
$postauth = get_user_meta($post->post_author, \'nickname\', true);
/********** UPDATE ALL POST FIELDS Function **********/
//check if data exists
if ($postauth){
//if it exists just echo it out
echo $postauth;
}else{
//if not , update the post meta with your default value and the echo it out.
$update_author = get_user_meta($post->post_author, \'nickname\', true);
update_post_meta($post->ID,\'nickname\',$update_author);
echo $update_author;
}
/********** End UPDATE ALL POST FIELDS Function **********/
在插入代码和调整条款后,我保存了文件并刷新了我的网站。代码应该为属于作者的所有帖子更新一个自定义字段(Author),并将作者的昵称保存到该字段中。我单独安装了一个基本搜索选项,设置为搜索自定义字段。因此,我通过搜索发布了8篇文章的作者的昵称来测试更新是否有效。其中三个是手动更新的,它们出现在我为作者的昵称所做的自定义字段搜索中。现在其他5篇帖子没有出现在搜索结果中,这让我知道所有帖子都没有更新。有什么解决办法吗?
UPDATE 6-24-11:
我一直在我的主题中到处搜索,以找出在何处放置Bainternet提供的解决方案,但没有成功。我正在使用couponpress主题v6。1.4。我已将下面的代码放在:\\u标题中。php,\\u单个。php,system\\u customfields。php。
//check if data exists. This is checking if the predefined field is empty or not.
if ($bizname_field != \'\'){
//if it exists just echo it out
echo \'existing value\';
}else{
//if not , update the post meta with your default value and the echo it out.
// New Variable Value
$newvalue = \'New value here\';
update_post_meta($post->ID,\'custom-field-name\',$newvalue);
echo $newvalue;
}
我正在兜圈子,希望能得到一些帮助。非常感谢。
最合适的回答,由SO网友:Bainternet 整理而成
问题是您没有用数据“填充”自定义字段,您只是在编辑屏幕中输出值,因此您必须保存或更新,并且要在所有帖子中包含该数据,您需要创建所有帖子的自定义查询并在其中更新meta或手动编辑每个帖子。当有1500个帖子时,这两个选项都不好。
一个更简单的解决方案是“动态”更新数据,这意味着在主题文件(显示元数据的文件)上创建一个条件检查,如果该字段存在,则更新它,类似于:
//get saved data
$page_description = get_post_meta($post->ID,\'custom-field-name\',true);
//check if data exists
if ($page_description){
//if it exists just echo it out
echo $page_description;
}else{
//if not , update the post meta with your default value and the echo it out.
$default_value = \'This is a sample value that will be put (echo $page_description) into a custom field\';
update_post_meta($post->ID,\'custom-field-name\',$default_value);
echo $default_value;
}