そのため、この投稿の受け入れられた回答に従いました。カスタム投稿タイプの「フロントページ表示」設定に別の設定を追加することが可能です
しかし、完全に機能しなかったため、この投稿で受け入れられた回答と比較する必要がありました。
do_settings_sectionsを出力できません。理由がわからない
今、それは実際に次のコードを使用して動作します
//Add settings to menu
add_action( 'admin_menu', 'events_options_add_page' );
function events_options_add_page() {
// add_submenu_page('edit.php?post_type=events', 'Events Admin', 'Events Settings', 'edit_posts', basename(__FILE__), 'events_options_do_page');
add_submenu_page('edit.php?post_type=events', 'Events Admin', 'Events Settings', 'edit_posts', basename(__FILE__), 'events_options_do_page');
}
///wordpress/32689/possible-to-add-another-setting-to-front-page-displays-setting-for-custom-post
//Fix Cap to allow editors to edit theme options
function events_get_options_page_cap() {
return 'edit_posts';
}
add_filter('option_page_capability_events-options', 'events_get_options_page_cap' );
function events_options_do_page() {
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php _e( 'Events Options', 'FoundationPress' ); ?></h2>
<form action="options.php" method="post">
<?php
settings_fields( "events_settings_options" );
do_settings_sections( "edit_posts" );
?>
<?php submit_button( __( "Save changes", "FoundationPress" ), "primary", "submit", true ); ?>
</form>
</div>
<?php
}
//Register Settings
add_action( 'admin_init', 'events_settings_register' );
function events_settings_register() {
register_setting( "events_settings_options", "events_settings_options", "events_settings_validate" ); //Register main settings
// add_settings_section( "events_cpt_settings", __( "Events Page Settings", "FoundationPress" ), "events_settings_dummy", "edit_posts" ); //Make settings text section
// add_settings_field( "events_settings_cpt_page", __( "Page for events", "FoundationPress" ), "events_settings_page_select", "edit_posts", "events_settings_options" );
add_settings_section( "events_cpt_settings", __( "Events Page Settings", "FoundationPress" ), "events_settings_dummy", "edit_posts" ); //Make settings text section
add_settings_field( "events_settings_cpt_page", __( "Page for events", "FoundationPress" ), "events_settings_page_select", "edit_posts", "events_cpt_settings" );
}
function events_settings_dummy() {}
//Validate Settings
function events_settings_validate ($input) {
$valid = get_option ( "events_settings_options" );
$valid['events_page'] = (int) $input['events_page'];
return $valid;
}
//Settings Fields
function events_settings_page_select() {
$options = get_option( 'events_settings_options' );
wp_dropdown_pages(
array(
'name' => 'events_settings_options[events_page]',
'echo' => 1,
'show_option_none' => __( '— Select —' ),
'option_none_value' => '0',
'selected' => $options['events_page']
)
);
}
それを機能させるために、2つの例の違いに気付き、do_settings_sectionsをedit_postsに変更しました...今では目的は許可または機能のためであるため、他のビットを試しましたが、許可はありませんワードプレス。
誰かが私のコードの意味を理解するのを手伝ってくれますか?私はぐるぐる回っていますが、それを見ている別の目を大いに感謝します。
その後、カスタム投稿タイプのアーカイブをロードするために、ページが実際に閲覧ページでページを設定するのと同じように機能するようにする必要があります。
どうもありがとう!
編集:
ぶつかる必要があり、必死にこれについての助けが必要です!修正のためにビールをペイパルでお楽しみください!
誰でも助けてもらえますか?
—
ルークウェール
動作するはずです。コードをテストしました。またはここで他に何か助けが必要ですか?
—
iantsch
—
わかり
カスタム投稿タイプ用のカスタムテンプレートを作成することを目標にしていますか?
—
スラム