こういうのはどうでしょうか。
プラグインの設定で投稿階層が親投稿になっているなら、カスタムフィールドにて名前を親ページ
値に固定ページのIDを指定して保存すれば投稿の親ページを固定ページに出来ます。
function set_post_parent( $post_id ) {
if( $post_parent = get_post_meta( $post_id, '親ページ', true ) ) {
$my_post = array(
'ID' => $post_id,
'post_parent' => $post_parent,
);
remove_action( 'save_post', 'set_post_parent' );
wp_update_post( $my_post );
add_action( 'save_post', 'set_post_parent' );
}
}
add_action( 'save_post', 'set_post_parent' );
親ページの選択肢が複数あり、記事作成毎に選択する必要があるならセレクトボックスなどを作っておいて選択するようにすれば作業が楽だと思います。
セレクトボックスと書いた後にセレクトボックスのメタボックスを追加すれば良いだけだと思い付きました。
これだとカスタムフィールドも要りません。
function add_post_parent_meta_box() {
add_meta_box( 'post_parent', '親ページ', 'post_parent_meta_box', 'post', 'side' );
}
add_action( 'add_meta_boxes', 'add_post_parent_meta_box' );
function post_parent_meta_box( $post ) {
$post_type_object = get_post_type_object( 'page' );
if ( $post_type_object->hierarchical ) {
$pages = wp_dropdown_pages( array(
'post_type' => 'page',
'selected' => $post->post_parent,
'name' => 'parent_id',
'show_option_none' => __('(no parent)'),
'sort_column' => 'menu_order, post_title',
'echo' => 0,
));
if ( $pages ) {
echo $pages;
} else {
echo '選択可能なページがありません';
}
}
}
ホームページの表示 が、固定ページに設定されていて、投稿ページを設定すれば、
トップページ→固定ページ(投稿ページに設定したページ)→投稿記事
にはなるはずです。
ご回答ありがとうございます!
カスタマイズ出来ました!m(_ _)m
設定だけで出来たのか、コードを追加して出来たのか、どの方法で出来たのかだけ書いてください。
manboさん
説明が足りず申し訳ありません!
セレクトボックスのメタボックスのPHPをfunctionに追加で出来ました。
ありがとうございました!
-
この返信は6年、 8ヶ月前にmh7ibが編集しました。