如何在WordPress中发布帖子后执行一些代码

时间:2017-11-02 作者:Sinai

我编写了一个简单的代码,可以在更新或发布帖子后执行某些操作(与清漆清除相关)。我把代码放在帖子里。php文件。在最新更新(4.8.3)之前一切都很好,之后我的所有代码都消失了!!当然这是正常的行为,因为帖子。php文件已替换为更新补丁中的新文件。我想知道如何在帖子更新或发布后执行一些代码,并且我的代码在Wordpress更新后不会消失?我也不想使用插件:D。谢谢。

3 个回复
最合适的回答,由SO网友:Jesse Vlasveld 整理而成

你在找save_post action. 这允许您在保存(更新)帖子时添加功能。

您可以像这样钩住它:

function your_save_post_function( $post_id ) {
}

add_action( \'save_post\', \'your_save_post_function\' );
记住不要更改WordPress核心文件,因为这些文件将在WordPress更新时被覆盖。您可以将此代码放入functions.php 文件,或主题文件夹中的任何其他位置。

SO网友:techno
<?php
add_action( \'save_post\', \'varnish_purge\' );
function varnish_purge()
{
 // code here
} 
SO网友:Malay Solanki

您可以替换publish{post},其中{post}是任何wordpress帖子类型。

function post_published_notification( $ID, $post ) {
    $author = $post->post_author; /* Post author ID. */
    $name = get_the_author_meta( \'display_name\', $author );
    $email = get_the_author_meta( \'user_email\', $author );
    $title = $post->post_title;
    $permalink = get_permalink( $ID );
    $edit = get_edit_post_link( $ID, \'\' );
    $to[] = sprintf( \'%s <%s>\', $name, $email );
    $subject = sprintf( \'Published: %s\', $title );
    $message = sprintf (\'Congratulations, %s! Your article “%s” has been published.\' . "\\n\\n", $name, $title );
    $message .= sprintf( \'View: %s\', $permalink );
    $headers[] = \'\';
    wp_mail( $to, $subject, $message, $headers );
}
add_action( \'publish_post\', \'post_published_notification\', 10, 2 );

结束

相关推荐

将PRE_GET_POSTS用于ACF中继子字段上相似比较的元值

我正在尝试根据repeater字段的ACF子字段值组织搜索结果页面。我想要一个相似的结果,而不是=。到目前为止,我获得了以下信息(在下面的帮助下进行了修改,但仍然不起作用):// Modify meta key to allow wildcard function add_wildcard_to_meta_key_filter( $where ) { $where = str_replace(\"meta_key = \'test_repeater_%\", \"meta_k