从过滤器中获取WordPress帖子ID

时间:2011-03-29 05:45:28

标签: wordpress wordpress-plugin

我正在尝试添加content_save_pre过滤器,以根据内容中的文本更新自定义字段,例如[东西] Thing [/ something]会告诉插件将自定义字段设置为“Thing”。

我的代码(下面)在通过Web界面发布时工作正常,但在我尝试的客户端(MarsEdit和WordPress iOS)以及“按此”书签上失败。 []标签被删除,但自定义字段未设置。

function dfll_get_link($post_content) {
  $dflink = dfll_find_link($post_content);
  if ($dflink) {
    global $post;
    $post_id = $post->ID;
    update_post_meta($post_id, 'linked_list_url', $dflink);
  }
  $temp = '/(' . dfll_regesc('[ll]') . '(.*?)' . dfll_regesc('[/ll]') . ')/i';
  $post_content = (preg_replace($temp, '', $post_content));
  return $post_content;
}

add_filter('content_save_pre', 'dfll_get_link');

从某些测试来看,似乎没有设置$ post_id变量。在这些情况下,有没有办法获得帖子ID?或者我应该尝试将过滤器添加到不同的钩子? (不过,我想不出任何合适的东西。)

1 个答案:

答案 0 :(得分:0)

使用Justin Blanton的CF Setter插件找到解决方案。提取信息并存储为全局,然后将该设置应用为save_post的操作。