我正在使用postie阅读电子邮件。
我正在使用以下过滤器来处理电子邮件中的关键字并将其转换为wp_postmeta项目。
//look for ':keyword attribute:' tags and convert them to '[keyword attribute]'
function filter_content($post) {
$content = $post['post_content'];
$length = strlen($content);
$pos = array(
'name' => strpos($content, ':name '),
'cost' => strpos($content, ':cost '),
'price' => strpos($content, ':price ')
);
foreach ($pos as $key => $value) {
if (false !== $value) {
$content[$value] = '[';
$value = strpos($content, ':', $value+1);
if ( (false !== $value) && (ctype_alnum($content[$value-1])) ) {$content[$value] = ']'; }
}
}
//if there is no name attribute then steal it from the subject line.
if (strpos($content, '[name ') === false) {
$content = ' [name ' . $post['post_name'] . '] ' . $content;
}
$post['post_content'] = $content;
return $post;
}
function resolve_shorttags($post) {
$content = $post['post_content'];
$content = do_shortcode($content);
$post['post_content'] = $content;
wp_update_post($post);
storeDefaults($post['ID']);
return $post;
}
因为我在do_shortcode
之外运行The Loop
。 get_the_ID()
不起作用。但是我需要post_id
才能使处理正常工作。
如何将我在post_id
处理的帖子resolve_shorttags()
传递到短标签挂钩?
的备注
我知道如果我留下短标签并等待显示时间和循环来处理短标签,这将得到解决,但我想事先处理这些数据。
如果有办法只处理特定的短代码或获取短代码键和属性,我也会很高兴。我可以手动调用处理程序。我不想做的是编写我自己的短代码解析器。