问题似乎很直截了当:一旦save_post
action ,我想在post_content
如果在帖子本身中还没有找到。
我试着打电话给wp_update_post()
从绑定到的函数中save_post
, 但你们中的许多人会立即反对,wp_update_post()
包含do_action(\'save_post\')
这样就创建了一个无限循环。
保存/编辑帖子后,如果不调用噩梦般的无限循环,还有什么其他方法(使用API)可以根据所述帖子自定义值更新帖子的内容?
问题似乎很直截了当:一旦save_post
action ,我想在post_content
如果在帖子本身中还没有找到。
我试着打电话给wp_update_post()
从绑定到的函数中save_post
, 但你们中的许多人会立即反对,wp_update_post()
包含do_action(\'save_post\')
这样就创建了一个无限循环。
保存/编辑帖子后,如果不调用噩梦般的无限循环,还有什么其他方法(使用API)可以根据所述帖子自定义值更新帖子的内容?
我找到的最初解决方案是将过滤器绑定到如下操作上wp_insert_post_data
并从全球$post
对象
// Tack our filter onto the wp_insert_post_data action
add_filter( \'wp_insert_post_data\', \'my_appender\' );
function my_appender( $content ) {
// Bring global $post into scope
global $post;
// Get meta value of meta key \'key_name\'
$meta_value = get_post_meta( $post->ID, \'key_name\', TRUE );
// If value is not in content, append it onto the end
if ( stristr( $content[\'post_content\'], $meta_value ) === FALSE )
$content[\'post_content\'] .= $meta_value;
// Return filtered content
return $content;
}
我相信这会有所改善。References
add_filter()
- “过滤器是WordPress启动的挂钩…”wp_insert_post_data
- “wp\\u insert\\u post函数调用的筛选器挂钩…”global
keyword - “变量的范围是定义它的上下文…”get_post_meta()
- “此函数返回自定义字段的值…”stristr()
- “查找字符串的第一个匹配项(不区分大小写)我已经在本地系统中配置了wordpress。我在wp\\u选项下的Phpmysql数据库中遇到了这些术语。谁能告诉我,这是什么意思?a:2:{s:12:\"twentyeleven\";s:7:\"/themes\";s:9:\"twentyten\";s:7:\"/themes\";}