{"id":47721,"date":"2022-03-30T22:07:22","date_gmt":"2022-03-30T14:07:22","guid":{"rendered":"http:\/\/www.xyryd.com\/?p=47721"},"modified":"2022-04-22T11:53:27","modified_gmt":"2022-04-22T03:53:27","slug":"wordpress%e4%b8%bb%e9%a2%98%e6%8f%92%e4%bb%b6%e5%bc%80%e5%8f%91save_post-hook-%e9%92%a9%e5%ad%90-%e4%bf%ae%e6%94%b9%e6%96%87%e7%ab%a0%e5%8f%91%e8%a1%a8%e7%8a%b6%e6%80%81-%e5%9b%be%e6%96%87%e6%95%99","status":"publish","type":"post","link":"http:\/\/www.xyryd.com\/47721.html","title":{"rendered":"WordPress\u4e3b\u9898\u63d2\u4ef6\u5f00\u53d1save_post hook \u94a9\u5b50 \u4fee\u6539\u6587\u7ae0\u53d1\u8868\u72b6\u6001 \u56fe\u6587\u6559\u7a0b"},"content":{"rendered":"\n

\u8001\u5b63\u6700\u8fd1\u5728\u5f00\u53d1\u4e00\u4e2a\u63d2\u4ef6\uff0c\u9700\u8981\u5728\u4fdd\u5b58\u6587\u7ae0\u7684hook\u94a9\u5b50\u4e2d\u4fee\u6539\u6587\u7ae0\u7684\u72b6\u6001\uff0c\u8fd9\u91cc\u8bb0\u5f55\u4e00\u4e0b\u5177\u4f53\u7684\u65b9\u6cd5\u3002<\/p>\n\n\n\n

\u8fd9\u91cc\u8981\u5148\u79fb\u9664\u4fdd\u5b58\u6587\u7ae0\u7684\u94a9\u5b50\u7136\u540e\u518d\u66f4\u65b0\u6587\u7ae0\u72b6\u6001\uff08\u4e0d\u7136\u4f1a\u9020\u6210\u670d\u52a1\u5668500\u9519\u8bef\uff09\uff0c\u7136\u540e\u518d\u628a\u94a9\u5b50\u91cd\u65b0\u542f\u7528\u3002\u5b98\u65b9\u8bf4\u660e\u6587\u6863\u5982\u4e0b\uff1a<\/p>\n\n\n\n

Avoiding infinite loops<\/h3>\n\n\n\n

If you are calling a function such as wp_update_post<\/code> that includes the save_post<\/code> hook, your hooked function will create an infinite loop. To avoid this, unhook your function before calling the function you need, then re-hook it afterward.<\/p>\n\n\n\n

\/\/ this function makes all posts in the default category private\n \nfunction set_private_categories($post_id) {\n    \/\/ If this is a revision, get real post ID\n    if ( $parent_id = wp_is_post_revision( $post_id ) ) \n        $post_id = $parent_id;\n \n    \/\/ Get default category ID from options\n    $defaultcat = get_option( 'default_category' );\n \n    \/\/ Check if this post is in default category\n    if ( in_category( $defaultcat, $post_id ) ) {\n        \/\/ unhook this function so it doesn't loop infinitely\n        remove_action( 'save_post', 'set_private_categories' );\n \n        \/\/ update the post, which calls save_post again\n        wp_update_post( array( 'ID' => $post_id, 'post_status' => 'draft' ) );\n \n        \/\/ re-hook this function\n        add_action( 'save_post', 'set_private_categories' );\n    }\n}\nadd_action( 'save_post', 'set_private_categories' );<\/code><\/pre>\n\n\n\n

WordPress\u5b98\u65b9\u624b\u518c\uff1ahttp:\/\/developer.wordpress.org\/reference\/hooks\/save_post\/<\/p>\n","protected":false},"excerpt":{"rendered":"

\u8001\u5b63\u6700\u8fd1\u5728\u5f00\u53d1\u4e00\u4e2a\u63d2\u4ef6\uff0c\u9700\u8981\u5728\u4fdd\u5b58\u6587\u7ae0\u7684hook\u94a9\u5b50\u4e2d\u4fee\u6539\u6587\u7ae0\u7684\u72b6\u6001\uff0c\u8fd9\u91cc\u8bb0\u5f55\u4e00\u4e0b\u5177\u4f53\u7684\u65b9\u6cd5\u3002 \u8fd9\u91cc\u8981\u5148\u79fb\u9664\u4fdd […]<\/p>\n","protected":false},"author":1,"featured_media":43051,"comment_status":"open","ping_status":"closed","sticky":false,"template":"single-with-sidebar","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[364,13,33,333,265],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/posts\/47721"}],"collection":[{"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/comments?post=47721"}],"version-history":[{"count":0,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/posts\/47721\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/media\/43051"}],"wp:attachment":[{"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/media?parent=47721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/categories?post=47721"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/tags?post=47721"}],"curies":[{"name":"wp","href":"http:\/\/api.w.org\/{rel}","templated":true}]}}