Title: コピペしたコードは動き、手打ちのコードが動かない
Last modified: 2016年7月30日

---

# コピペしたコードは動き、手打ちのコードが動かない

 *  解決済 [thds](https://ja.wordpress.org/support/users/thds/)
 * (@thds)
 * [12年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%94%e3%83%9a%e3%81%97%e3%81%9f%e3%82%b3%e3%83%bc%e3%83%89%e3%81%af%e5%8b%95%e3%81%8d%e3%80%81%e6%89%8b%e6%89%93%e3%81%a1%e3%81%ae%e3%82%b3%e3%83%bc%e3%83%89%e3%81%8c%e5%8b%95%e3%81%8b/)
 * add_actionでアクションフックを使用しようとしています。
    他の方が作られたコード
   を丸々コピペした場合は問題無く動くのですが、 それを全く同じように真似て自分で
   手打ちすると動作しなくなってしまいます。
 * 何百と見返しても誤字脱字などは無く、ユーザー定義関数内をecho “test”;のみにして
   みても実行されません。
    コピペしたコードの一部を書き換えても動作しなくなります。
   例えばアクションフックを変更したりユーザー定義関数の名前を変えてみたりです。 
   アクションフックを’all’にするといずれも動作するので、間違っているとすればアクション
   フックのはずなのですが、どう見ても確実に、間違いなくコピペしてきたものと同一でも
   動作しないのです。
 * こんな事があるものなのでしょうか？
    もし何か理由など心当たりがありましたら是非とも
   ご教授願います。
 *     ```
       add_action( 'trash_thread', 'trash_child_post' );
       //他の方が作られたのをコピペしたものです。これは動きます。
   
       add_action( 'untrash_post', 'untrash_child_post' );
       //アクションフックと関数名を改変したものです。これは動きません。
   
       add_action( 'trash_thread', 'untrash_child_post' );
       //関数名だけ改変したものです。これも動きません。
   
       add_action( 'all', 'untrash_child_post' );
       //アクションフックをallにしたものです。これは動きます。
       ```
   

4件の返信を表示中 - 1 - 4件目 (全4件中)

 *  [jdbb](https://ja.wordpress.org/support/users/jdbb/)
 * (@jdbb)
 * [12年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%94%e3%83%9a%e3%81%97%e3%81%9f%e3%82%b3%e3%83%bc%e3%83%89%e3%81%af%e5%8b%95%e3%81%8d%e3%80%81%e6%89%8b%e6%89%93%e3%81%a1%e3%81%ae%e3%82%b3%e3%83%bc%e3%83%89%e3%81%8c%e5%8b%95%e3%81%8b/#post-174384)
 * 普通に考えればそんなことはないはずです。
    動かないとはどのようになって動かなくなる
   のでしょうか？ ・エラー ・期待した動きをしない。
 * エラーの場合でしたらまずエラーコード、もしくはサーバのエラーログの確認です。
   
   期待した動きをしないの部分でしたら自分で作った関数のエラーになります。 ただ、
   wordpressのみではtrash_thredというフックが見当たらないのですが 例えばリダイレクト
   したりなどするような場合などもあるので `exit();` で処理を止めてみるなどしてみる
   とまずフックが効いているかどうか判断できると思います。
 *  トピック投稿者 [thds](https://ja.wordpress.org/support/users/thds/)
 * (@thds)
 * [12年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%94%e3%83%9a%e3%81%97%e3%81%9f%e3%82%b3%e3%83%bc%e3%83%89%e3%81%af%e5%8b%95%e3%81%8d%e3%80%81%e6%89%8b%e6%89%93%e3%81%a1%e3%81%ae%e3%82%b3%e3%83%bc%e3%83%89%e3%81%8c%e5%8b%95%e3%81%8b/#post-174405)
 * ありがとうございます。
    exit();でデバッグしたところ、多少の進展がありました。
 * 手打ち云々の問題では無い事は分かりましたが、
    問題は一向に解決されず、どうした
   ものかと悩んでおります。
 *     ```
       add_action( 'untrash_post', 'action_test' );
       function action_test( $post_id ) {
       	$check_post_type=get_post($post_id);
       	if($check_post_type->post_type=='test'){
       		$children=get_children(array('post_type'=>'test','post_parent'=>$post_id ));
       		function exit_test($test){print_r($test);}
       		exit(exit_test($children));
       	}
       }
       ```
   
 * これでpost_typeがtestの投稿をゴミ箱から復元すると、復元しようとしている投稿記事
   の子記事を取得し、中身（$children）が表示されます。
    しかしアクションフックを
   delete_postに変えた瞬間に、子記事が取得できなくなります。 ゴミ箱から「完全に削除
   する」をクリックすると、exit_test内がprint_rだと何も表示されず、var_dumpだとnull
   と表示されます。 $post_idまでは正常に取得できているようですが、何故かget_children
   に失敗してしまいます。 もちろん「完全に削除する」際に子記事は存在しています。
   ただ取得だけが出来ません。 アクションフックをuntrash_postに戻すと正常に動作し
   ます。
 * untrash_postとdelete_post、返り値か何かに違いがあるのでしょうか？
    元の質問内容
   と異なってしまい申し訳ないのですが、ご返答よろしくお願いします。
 *  [jdbb](https://ja.wordpress.org/support/users/jdbb/)
 * (@jdbb)
 * [12年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%94%e3%83%9a%e3%81%97%e3%81%9f%e3%82%b3%e3%83%bc%e3%83%89%e3%81%af%e5%8b%95%e3%81%8d%e3%80%81%e6%89%8b%e6%89%93%e3%81%a1%e3%81%ae%e3%82%b3%e3%83%bc%e3%83%89%e3%81%8c%e5%8b%95%e3%81%8b/#post-174424)
 * delete_postが動作するタイミングによるものだと思います。
 * wp-includes/post.php
    delete_postは本当に**削除する直前と直後**の２か所にフック
   されており、 それ以前にはすでに子ページの親子関係が削除されているため 子記事が
   取得できていないと思われます。
 * この場合には
    delete_postではなく before_delete_post を使うと期待した動きになる
   と思います。
 *  トピック投稿者 [thds](https://ja.wordpress.org/support/users/thds/)
 * (@thds)
 * [12年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%94%e3%83%9a%e3%81%97%e3%81%9f%e3%82%b3%e3%83%bc%e3%83%89%e3%81%af%e5%8b%95%e3%81%8d%e3%80%81%e6%89%8b%e6%89%93%e3%81%a1%e3%81%ae%e3%82%b3%e3%83%bc%e3%83%89%e3%81%8c%e5%8b%95%e3%81%8b/#post-174438)
 * ありがとうございます！
    before_delete_postで問題無く動作しました！
 * また、get_childrenのpost_status=anyが、
    ゴミ箱内まで対象としていないようで、
   今まで勘違いしておりました。 any&trashで問題なくゴミ箱内外の子記事を取得できま
   した。 本当にありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)

 トピック「コピペしたコードは動き、手打ちのコードが動かない」には新たに返信すること
はできません。

## タグ

 * [add_action](https://ja.wordpress.org/support/topic-tag/add_action/)
 * [アクションフック](https://ja.wordpress.org/support/topic-tag/%e3%82%a2%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e3%83%95%e3%83%83%e3%82%af/)
 * [コピペ](https://ja.wordpress.org/support/topic-tag/%e3%82%b3%e3%83%94%e3%83%9a/)
 * [コピーペースト](https://ja.wordpress.org/support/topic-tag/%e3%82%b3%e3%83%94%e3%83%bc%e3%83%9a%e3%83%bc%e3%82%b9%e3%83%88/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 4件の返信
 * 2人の参加者
 * 最後の返信者: [thds](https://ja.wordpress.org/support/users/thds/)
 * 最後の活動: [12年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%94%e3%83%9a%e3%81%97%e3%81%9f%e3%82%b3%e3%83%bc%e3%83%89%e3%81%af%e5%8b%95%e3%81%8d%e3%80%81%e6%89%8b%e6%89%93%e3%81%a1%e3%81%ae%e3%82%b3%e3%83%bc%e3%83%89%e3%81%8c%e5%8b%95%e3%81%8b/#post-174438)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
