发布帖子后执行函数

时间:2019-02-05 作者:user2093301

我在我的网站上使用了一个帖子爬虫,它可以从其他网站上提取文章,并自动将它们发布到我的网站上。在这个过程中,它检查是否有任何视频嵌入代码;如果存在,爬虫程序会在帖子中创建一个自定义字段“video\\u code”,并在值中添加视频嵌入代码。

我编写了一个函数,用于检查爬网帖子中名为“video\\u code”的特定自定义字段。如果该自定义字段存在,它会将post格式从标准更改为视频。

    function check_meta( $post_id, $post, $update ) {
        $post_type = get_post_type($post_id);
        if ( "post" != $post_type ) return;

        if ( isset( $_POST[\'video_code\'] ) ) {
            set_post_format( $post_id, \'video\' );
        }
    }
    add_action( \'save_post\', \'check_meta\', 999, 3 );
只有当我编辑帖子并手动单击更新按钮时,上述功能才起作用,原因是在该功能检查帖子元数据时,元数据不存在。

保存帖子后,我如何运行上述函数,以确保元数据存在,并且我的函数可以检查元数据并更改帖子格式。

更新:我联系了插件作者,虽然他不能帮我写代码,但他确实给了我一些关于如何实现这一点的观点。

他的回答是:

在检查帖子的元数据时,元数据不存在。该插件具有可以使用的过滤器和操作。你可以看到https://pastebin.com/jLmnp2F8 文件的insertPostData()方法。您可以使用1个筛选器和2个操作。例如,可以使用wpcc/post/after\\u保存操作。操作的第一个参数提供了一个PostData实例,您可以从中检索自定义元值。看见https://pastebin.com/u8t2cf4P 文件的getCustomMeta()方法。它将自定义元作为键值对提供。该操作还提供post ID作为参数。对于参数及其描述,您可以看到insertPostData()方法。

1 个回复
SO网友:samjco

&#x个A.;funct型我on ch类eck_m级et型一( $post型_我d, $post型, $upd一t型e ) {&#x个A.;&#x个A.;        $post型_t型ype = g级et型_post型_t型ype($post型_我d);&#x个A.;        我f ( “”post型“” != $post型_t型ype ) ret型urn;&#x个A.;&#x个A.;&#x个A.;        $v我deo_code_v一l = g级et型_post型_m级et型一( $post型_我d, \'v我deo_code\', t型rue );&#x个A.;&#x个A.;        // Ch类eck 我f t型h类e v我deo_code f我eld h类一s 一 v一lue.&#x个A.;        我f ( ! em级pt型y( $v我deo_code_v一l ) ){&#x个A.;&#x个A.;         //我f 我t型 does, set型 post型 form级一t型&#x个A.;         set型_post型_form级一t型( $post型_我d, \'v我deo\' );&#x个A.;&#x个A.;        }&#x个A.;&#x个A.;}&#x个A.;&#x个A.;一dd_一ct型我on( \'s一ve_post型\', \'ch类eck_m级et型一\', 999, 3. )&#x个A.;&#x个A.;
&#x个A.;&#x个A.;

M一ybe 一lso t型ry ot型h类er 一ct型我ons...

&#x个A.;&#x个A.;

我f t型h类e post型 我s s一ved v我一 publ我sh类ed:

&#x个A.;&#x个A.;
一dd_一ct型我on( \'publ我sh类_post型\', \'ch类eck_m级et型一\', 999, 3. );&#x个A.;
&#x个A.;&#x个A.;

or 我f on 我f 一 post型 我s s一ved 一s dr一ft型:

&#x个A.;&#x个A.;
一dd_一ct型我on( \'dr一ft型_t型o_publ我sh类\', \'ch类eck_m级et型一\', 999, 3. );&#x个A.;
&#x个A.;&#x个A.;

or t型h类我s upd一t型ed_post型_m级et型一 一ct型我on m级我g级h类t型 work:

&#x个A.;&#x个A.;
一dd_一ct型我on( \'upd一t型ed_post型_m级et型一\', \'ch类eck_m级et型一\', 999, 3. );&#x个A.;
&#x个A.;