【发布时间】:2020-03-16 11:53:17
【问题描述】:
我需要仅对需要帖子元数据的新发布帖子执行一些操作。
我尝试了许多不同的钩子,但它们都会触发其他“事件”,例如更新帖子,或者如果它们仅在发布时触发,则元数据为空或内部只有 _edit_lock 值。
-
auto-draft_to_publish在我需要时触发钩子,但没有发布元数据
add_action( 'auto-draft_to_publish', 'wpse120996_specific_post_status_transition' ); function wpse120996_specific_post_status_transition($post) { if ($post->post_type != 'poruke') { return; } $post_meta = get_post_meta($post->ID); echo "<pre>"; die(var_dump( $get_post_meta )); echo "</pre>"; } -
transition_post_status 适用于正确的状态检查,但也没有发布元数据
'publish' === $new_status && 'publish' !== $old_status // right time,no post meta -
publish_post似乎这个甚至由于某种原因没有触发
add_action( 'publish_post', 'myfunction' ); function myfunction($post) { echo "<pre>"; die(var_dump( 'PUBLISHED?' )); // this dump is nowhere to be found, I looked in network tab in debugger echo "</pre>"; } save_post只要在侧边栏中按下“添加新”,就会触发此操作
我对此有很多问题,我很难相信如此“基本”的东西不会成为 wordpress 中的一个功能,但到目前为止我没有发现任何对我的搜索有帮助的东西。
提前致谢。
【问题讨论】:
-
'publish_post'钩子已弃用,请参阅adambrown.info/p/wp_hooks/hook/publish_post 根据链接,publish_post仅在某些帖子类型时有效:帖子更改为发布状态。另外,我很惊讶die(var_dump('anything'))为你做了任何事情,因为var_dump()没有返回任何东西。我会写 var_dump('anything');死();但这是细节。看来你遇到了一个难题,我还在努力。
标签: php wordpress metadata custom-post-type wordpress-hook