add_actionで”init”と指定したのですが、3種類のうちfunctions.phpで一番下に書いたものだけが常に反映されてしまいます。
具体的なコードを掲示していただいた方が早いかもしれませんね。
そうすれば、例えば
add_action('init', 'my_function_1');
add_action('init', 'my_function_2');
add_action('init', 'my_function_3');
のようなコードであれば、
if('wper' == $_POST['post_type'])
のような、投稿タイプによる条件分岐が必要かも、という感じのアドバイスがくるかもしれません。
kurosquareさんありがとうございます。
考え方の方向がやっとわかってきた気がします。
つまり、管理画面上での条件分岐の方法がわかれば良いのかと。
例えば、「カスタム投稿(services)の記事を編集する画面の場合に」というようなことを実現するにはどうしたら良いのでしょうか?
例えば、WordPressの表の部分ではis_categoryやis_page,is_singleなどのテンプレートタグを使ったりして分岐をさせることができるわけですが、管理画面内でそういったことをやりたいのですが、どのようにしたら良いのでしょうか?
今回は管理画面でカスタム投稿の種類によって編集画面を分岐させたいのですが、$_POST[‘post_type’]のようなかたちで管理画面では送られているということでしょうか?
試しにfunctions.phpにecho $_POST[‘post_type’]と書いてみたのですが、管理画面上に表示されませんでした。
管理画面内での条件分岐の方法について教えてください。
よろしくお願いします。
記事の編集画面は wp-admin/edit-form-advanced.php で出力してますので
ソース中の dp_action() からお好みのタイミングのものを利用すれば OK です◎
投稿タイプ名は $post_type、
投稿タイプのオブジェクトは $post_type_object
という変数に各々入ってます。
それぞれのカスタム投稿に特化した処理
が具体的に何なのかをご説明いただくと、より的確なアドバイスができるもしれません。
kzさんありがとうございます。
タイトル入力欄とビジュアルエディタの間に、それぞれのカスタム投稿の「入力の際の注意事項」のようなものを出力したいと思っています。
functions.phpにて$post_type、$post_type_objectをエコーしてみたのですが、管理画面上には何も表示されないのですが、これはfunctions.phpが実行されるタイミングの問題なのでしょうか?
1.テーマの functions.php に以下を追加。
<?php
add_action('admin_print_scripts', 'my_admin_print_scripts');
function my_admin_print_scripts() {
wp_enqueue_script( 'my-admin-script', get_bloginfo('stylesheet_directory') . '/admin-script.js', array( 'jquery' ), false, true );
}
?>
2.admin-script.js を作成。以下をコピペしてテーマフォルダにアップロード。
jQuery( document ).ready( function( $ ) {
if ( typenow ) {
var text = 'この編集ページの投稿タイプは ' + typenow + ' ですー';
jQuery( '#titlewrap' ).after( '<p>' + text + '</p>' );
}
});
javascript の変数 typenow に現在の投稿タイプスラッグ名が入ってます。
if 文で分岐させて投稿タイプごとの入力の際の注意事項のようなものを
text に入れれば OK。
返答が遅くなり申し訳ありませんでした。
無事に解決することができました。
いつもありがとうございます^^