Opção de backend para include um arquivo javascript em páginas específicas?

Estou trabalhando em um modelo que meus colegas de trabalho estarão usando para preencher o conteúdo. Em algumas das páginas, haverá um controle deslizante ou vários controles deslizantes, mas em outras páginas não haverá nenhum. Por isso, eu gostaria de criar uma opção (talvez uma checkbox de seleção ou algo assim) no backend das Páginas que permita que elas incluam o script do controle deslizante, se necessário.

Eu poderia enqueue o script apenas em IDs de páginas específicas, mas como eles estarão criando muitas dessas páginas, eu preferiria ter uma maneira automática para que eles incluíssem os próprios Javascript em vez de eu ter que entrar e adicionar mais IDs de páginas toda vez Eles fazem uma nova página que usa o Javascript.

Além disso, eu gostaria de usar apenas um modelo de 1 página, se possível.

Qual seria o melhor caminho a seguir sobre isso?

Obrigado!

Solutions Collecting From Web of "Opção de backend para include um arquivo javascript em páginas específicas?"

A melhor maneira de fazer isso seria adicionar uma Meta Box ao painel Adicionar / Editar Página.

Então, ao gravar scripts, você pode verificar os metadados para essa publicação e, se estiver configurado, enqueue o script.

NOTA: há muitas peças móveis aqui. Vou tentar dividi-lo em pedaços de digestão.

Código de amostra. Nota: você precisaria inserir em functions.php e ajustar seu tema específico:

Primeiro, vamos começar a metabox registrada para aparecer

function slider_script_add_meta_box() { add_meta_box( 'do_script_sectionid', 'Include Slider Script', 'slider_script_meta_box', 'page' ); } add_action( 'add_meta_boxes', 'slider_script_add_meta_box' ); 

Agora, vamos exibir a opção metabox

 function slider_script_meta_box( $post ) { // Add an nonce field so we can check for it later. wp_nonce_field( 'slider_script_action_name', 'slider_script_meta_box_nonce' ); // Get existing value if set $value = get_post_meta( $post->ID, '_do_slider_script', true ); $checked = ($value) ? ' checked' : ''; echo ' '; echo ''; } 

Em seguida, segure a página salva para garantir que os dados sejam salvos

 function myplugin_save_meta_box_data( $post_id ) { // Check if our nonce is set and verifies. if ( ! isset( $_POST['slider_script_meta_box_nonce'] ) || ! wp_verify_nonce( $_POST['slider_script_meta_box_nonce'], 'slider_script_action_name' ) ) { return; } // If this is an autosave, our form has not been submitted, so we don't want to do anything. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // Check the user's permissions. if ( isset( $_POST['post_type'] ) && 'page' == $_POST['post_type'] ) { if ( ! current_user_can( 'edit_page', $post_id ) ) { return; } } // Finally! Safe for us to save the data now. // Sanitize user input. $do_script = (isset($_POST['do_slider_script'])) ? 1 : 0; // Update the meta field in the database. update_post_meta( $post_id, '_do_slider_script', $do_script ); } add_action( 'save_post', 'myplugin_save_meta_box_data' ); 

FINALMENTE, adicione esta seção para realmente registrar / enqueue seu script nas páginas relevantes

 function enqueue_slider_scripts() { global $post; $do_script = get_post_meta($post->ID, '_do_slider_script', true); if ($do_script) { // Alter the path to your script as needed wp_enqueue_script('slider_script', get_template_directory_uri() . '/js/example.js'); } } add_action( 'wp_enqueue_scripts', 'enqueue_slider_scripts' ); 

Mais uma vez , todos estes podem ser colados em seu arquivo functions.php. Alternativamente, uma maneira mais organizada seria criar um novo arquivo php na sua pasta de temas e incluí-lo no arquivo de funções. Isso permitiria que você atribuísse ao arquivo um nome significativo e mantenha o código “organizado” em grupos relacionados.