Last active
February 13, 2023 08:04
-
-
Save ajskelton/27369df4a529ac38ec83980f244a7227 to your computer and use it in GitHub Desktop.
Add a Dropdown-pages field to the WordPress Customizer.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$wp_customize->add_setting( 'themeslug_dropdownpages_setting_id', array( | |
'capability' => 'edit_theme_options', | |
'sanitize_callback' => 'themeslug_sanitize_dropdown_pages', | |
) ); | |
$wp_customize->add_control( 'themeslug_dropdownpages_setting_id', array( | |
'type' => 'dropdown-pages', | |
'section' => 'custom_section', // Add a default or your own section | |
'label' => __( 'Custom Dropdown Pages' ), | |
'description' => __( 'This is a custom dropdown pages option.' ), | |
) ); | |
function themeslug_sanitize_dropdown_pages( $page_id, $setting ) { | |
// Ensure $input is an absolute integer. | |
$page_id = absint( $page_id ); | |
// If $page_id is an ID of a published page, return it; otherwise, return the default. | |
return ( 'publish' == get_post_status( $page_id ) ? $page_id : $setting->default ); | |
} |
sorry, I am just a learner till now. Still, I am unable how I can do it by javascript. If you can help it would be appreciated.
BTW thanks for your suggestion.
How can I instead of drop-down pages to drop-down custom links. Because I used custom links on my navbar
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@ferdausalom
Ok, I think you've misunderstood the purpose of the dropdown-pages customizer type.
If you just want to navigate to another page to continue editing you can use the navigation on your existing page. For example I see the Contact page listed in your navigation. If you click that it will load the contact page on the right side without reloading, so your Customizer will stay exactly where it is.
If you really want to use the Customizer dropdown-pages you could probably add some javascript that watches a change to this select field and updates the url.