あるブログから別のブログにカスタム投稿タイプの「イベント」をコピーするプラグインを作成しようとしています。コピーするためのコードはすでに動作していますが、イベントが公開されたときにこの "add_action"フックを動作させることはできません。
add_action('publish_event', 'copy_event_to_mini_site' );
function copy_event_to_mini_site() {
code in here to copy relevant data from one blog to the other
}
私も試してみました:add_action('publish_post', 'copy_event_to_mini_site' );
それもうまくいきませんでした。
コーデックスを読んでください、それで私はついに答えを見つけました:
https://codex.wordpress.org/Plugin_API/Action_Reference/publish_post
最終的には :
カスタム投稿タイプ
カスタム投稿タイプに対してこのアクションをトリガーするには、publish _ {$ custom_post_type}を使用します。例えばあなたの投稿タイプが 'book'の場合
add_action( 'publish_book', 'post_published_notification', 10, 2 );
transition_post_status
を使用すると、すべての投稿タイプを実行して、あるステータスから別のステータスに変更することができます。または新しい出版ポスト。
これが公式です WordPress Codec Page 。
function on_all_status_transitions( $new_status, $old_status, $post )
{
if ( $new_status != $old_status ) {
// A function to perform actions any time any post changes status.
}
if ( $new_status != 'publish' ) {
// A function to perform action when new post published.
}
}
add_action( 'transition_post_status', 'on_all_status_transitions', 10, 3 );
これがすべてのカスタム投稿タイプとデフォルト投稿タイプに広く役立つことを願っています。
s_ha_dum - あなたはこれが正しいフックであることは正しかった - 私の悪い。
私は他のブログのDBテーブルをチェックしましたが、投稿は実際にはコピーされています - それは他のサイトのイベントの管理者リストには表示されません。だから私はなぜコピーされた投稿がリストに表示されないのかを理解しなければならないでしょう。
利用可能な投稿ステータスは以下のとおりです。
必要に応じて、投稿ステータスの遷移ごとにイベントを作成できます。