自动更新所有帖子的帖子吗?

时间:2011-06-22 作者:user1893

我已经设法用我所有帖子的某些预定义值填充自定义字段,但只有手动更新帖子,更改才会生效。

示例:

// 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;
                            } 
我正在兜圈子,希望能得到一些帮助。非常感谢。

1 个回复
最合适的回答,由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;
}

结束