有没有办法使用`TRANSPEST_STATUS`获取POST字段

时间:2016-08-23 作者:Mayeenul Islam

首先,我尝试获取post\\u元数据,最近,我尝试获取get_post_field() 内部atransition_post_status 挂钩函数,如:

<?php
add_action( \'transition_post_status\', \'yes_send_email_notification\', 10, 3 );
function yes_send_email_notification( $new_status, $old_status, $post ) {

    if( \'mycpt\' === $post->post_type && \'new\' === $old_status && \'pending\' === $new_status ) :
        $post_id = $post->ID;
        /**
         * Generate Dynamic values
         */
        $post_view_link   = get_permalink( $post_id );

        $message = "My custom message<br>";
        $message .= "Link: ". esc_url( $post_view_link );

        //headers are duely passed
        //$headers = ...

        wp_mail( \'[email protected]\', \'New MyCPT submitted\', $message, $headers );

    endif;
}
电子邮件工作正常。现在我试着包括post_content, post_title (如果可能,post_meta 数据),但不幸的是,我无法获取任何内容。

$post_id        = $post->ID;
$post_view_link = get_permalink( $post_id );
$post_title     = get_post_field( \'post_title\', $post, \'display\' );
$post_content   = get_post_field( \'post_content\', $post, \'display\' );
$post_excerpt   = wp_trim_words( $post_content, 70, null );
但我失败了。$post_title$post_excerpt 没有得到填充。(同样的情况也发生在post_meta 字段)

我怎样才能post_fields (如果可能的话post_meta 字段)内部transition_post_status 挂钩函数?

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

我不知道为什么get_post_field 在这种情况下不起作用,但如果您可以访问$post->ID, 您还应该能够$post->post_title$post->post_content (甚至$post->post_excerpt 如果有)。

这个$post object 包括标准元数据,如作者和发布日期。中的任何元数据wp_postmeta 数据库中的表只能使用$post->ID, 您应该能够使用get_metadata. 如果失败了,你可以run a query on the database directly. 由于插件在构造元数据方面有相当大的自由度,因此通常不可能说明如何构造此查询。此外:read Otto\'s note 关于这个。

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果