2015-02-06 5 views
0

сначала я упал действительно глупо, представив этот вопрос, так как есть так много, что обсуждали его на бесчисленных форумах, но ... я был через них всех, и я до сих пор не могу его достать работать .... или я не могу заставить его работать с правильным методом WordPress ....wordpress using .js script в плагине

им писать плагин с отправкой формы, где я добавляю DatePicker к отправке формы

function datepickertester() { 
wp_enqueue_script('jquery-ui-datepicker'); 

wp_enqueue_style('datepicker', plugins_url('/js/css/datepicker.css', __FILE__)); 

?> 


<script type="text/javascript"> 

jQuery(document).ready(function() { 
    jQuery('.inputtable_date').datepicker({ 

    }); 



/* Danish initialisation for the jQuery UI date picker plugin. */ 
/* Written by Jan Christensen ([email protected]). */ 
(function(factory) { 
    if (typeof define === "function" && define.amd) { 

     // AMD. Register as an anonymous module. 
     define([ "../datepicker" ], factory); 
    } else { 

     // Browser globals 
     factory(jQuery.datepicker); 
    } 
}(function(datepicker) { 

datepicker.regional['da'] = { 
    closeText: 'Luk', 
    prevText: '&#x3C;Forrige<---', 
    nextText: '--->Næste&#x3E;', 
    currentText: 'Idag', 
    monthNames: ['Januar','Februar','Marts','April','Maj','Juni', 
    'Juli','August','September','Oktober','November','December'], 
    monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 
    'Jul','Aug','Sep','Okt','Nov','Dec'], 
    dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], 
    dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], 
    dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], 
    weekHeader: 'Uge', 
    showWeek: 'Uge', 
    dateFormat: 'dd-mm-yy', 
    firstDay: 1, 
    isRTL: false, 
    showMonthAfterYear: false, 
    yearSuffix: ''}; 
datepicker.setDefaults(datepicker.regional['da']); 

return datepicker.regional['da']; 

})); 
}); 
</script> 

<?php 
} 

приведенный выше код работает как предполагается. так ... это работает, ну, я знаю, что это не правильный метод Wordpress для обработки скриптов, поэтому я переместил скрипт в файл jscript-test.js в папке плагина

так что проблема в i ' я попытался зарегистрировать сценарий 50 раз из дискуссий на форуме и учебных пособий, которые я нашел в Интернете, но ни один из них не работал для меня

Очевидно, я не собираюсь перечислять все 50 способов, которыми я пытался заставить его работать. здесь 1 из способов, которые я пробовал зарегистрировать.

add_action('wp_register_script', 'script_registration'); 
function script_registration() { 
    wp_register_script('jscript-test', plugins_url('/js/jscript-test.js', __FILE__)); 
} 


function my_scripts_method() { 
wp_enqueue_script('jquery-ui-datepicker'); 
wp_enqueue_style('datepicker', plugins_url('/js/css/datepicker.css', __FILE__)); 
wp_enqueue_style('jscript-test'); 

} 

что я делаю неправильно?

......... редактировать .......

я упал, как я хотел бы добавить еще некоторую информацию о моем плагине. я звоню функцию ниже с шорткодом на моей странице WordPress

, когда я использую первую функцию I на вершину страницы, в моей функции inputtable_func() работает как шарм и когда когда я использую второй код на вершине страница, на которой я пытаюсь Registre в .js сценарий его не работает ... я уже привел пример в нижнем коде ниже о том, как я звоню обе функции

function inputtable_func() { 
echo ' 

<form action="' . $_SERVER['REQUEST_URI'] . '" method="post"> 

<table><tr> 
<td class="inputtable_label_day"><label for="day">Dag</label></td> 
<td class="inputtable_text_dato"><label for="dato">Dato</label></td> 
<td class="inputtable_text_start"><label for="start">Start</label></td> 
<td class="inputtable_text_slut"><label for="slut">Slut</label></td> 
<td class="inputtable_text_pause"><label for="Pause">Pause</label></td> 
<td class="inputtable_text_egenb"><label for="egenb">Egen Betaling</label></td> 
<td class="inputtable_text_tot"><label for="tot">Total kørt ind</label></td> 
</tr><tr> 
<td class="inputtable_label_day"><label for="day">Mandag</label></td> 
<td class="inputtable_input_dateA"><input class="inputtable_date" type="text" name="dateA" value="' . (isset($_POST['dateA']) ? $dateA : null) . '"></td> 
<td class="inputtable_input_startA"><input class="inputtable_start" type="text" name="startA" value="' . (isset($_POST['startA']) ? $startA : null) . '"></td> 
<td class="inputtable_input_slutA"><input class="inputtable_slut" type="text" name="slutA" value="' . (isset($_POST['slutA']) ? $slutA : null) . '"></td> 
<td class="inputtable_input_pauseA"><input class="inputtable_pause" type="text" name="pauseA" value="' . (isset($_POST['pauseA']) ? $pauseA : null) . '"></td> 
<td class="inputtable_input_egenbA"><input class="inputtable_egenb" type="text" name="egenbA" value="' . (isset($_POST['egenbA']) ? $egenbA : null) . '"></td> 
<td class="inputtable_input_totA"><input class="inputtable_tot" type="text" name="totA" value="' . (isset($_POST['totA']) ? $totA : null) . '"></td> 
</tr><tr> 
<td class="inputtable_label_day"><label for="day">Tirsdag</label></td> 
<td class="inputtable_input_dateA"><input class="inputtable_date" type="text" name="dateB" value="' . (isset($_POST['dateB']) ? $dateB : null) . '"></td> 
<td class="inputtable_input_startA"><input class="inputtable_start" type="text" name="startB" value="' . (isset($_POST['startA']) ? $startA : null) . '"></td> 
<td class="inputtable_input_slutA"><input class="inputtable_slut" type="text" name="slutB" value="' . (isset($_POST['slutB']) ? $slutB : null) . '"></td> 
<td class="inputtable_input_pauseA"><input class="inputtable_pause" type="text" name="pauseB" value="' . (isset($_POST['pauseB']) ? $pauseB : null) . '"></td> 
<td class="inputtable_input_egenbA"><input class="inputtable_egenb" type="text" name="egenbB" value="' . (isset($_POST['egenbB']) ? $egenbB : null) . '"></td> 
<td class="inputtable_input_totA"><input class="inputtable_tot" type="text" name="totB" value="' . (isset($_POST['totB']) ? $totB : null) . '"></td> 
</tr><tr> 
<td class="inputtable_label_day"><label for="day">Onsdag</label></td> 
<td class="inputtable_input_dateA"><input class="inputtable_date" type="text" name="dateC" value="' . (isset($_POST['dateC']) ? $dateC : null) . '"></td> 
<td class="inputtable_input_startA"><input class="inputtable_start" type="text" name="startC" value="' . (isset($_POST['startC']) ? $startC : null) . '"></td> 
<td class="inputtable_input_slutA"><input class="inputtable_slut" type="text" name="slutC" value="' . (isset($_POST['slutC']) ? $slutC : null) . '"></td> 
<td class="inputtable_input_pauseA"><input class="inputtable_pause" type="text" name="pauseC" value="' . (isset($_POST['pauseC']) ? $pauseC : null) . '"></td> 
<td class="inputtable_input_egenbA"><input class="inputtable_egenb" type="text" name="egenbC" value="' . (isset($_POST['egenbC']) ? $egenbC : null) . '"></td> 
<td class="inputtable_input_totA"><input class="inputtable_tot" type="text" name="totC" value="' . (isset($_POST['totC']) ? $totC : null) . '"></td> 
</tr><tr> 
<td class="inputtable_label_day"><label for="day">Torsdag</label></td> 
<td class="inputtable_input_dateA"><input class="inputtable_date" type="text" name="dateD" value="' . (isset($_POST['dateD']) ? $dateD : null) . '"></td> 
<td class="inputtable_input_startA"><input class="inputtable_start" type="text" name="startD" value="' . (isset($_POST['startD']) ? $startD : null) . '"></td> 
<td class="inputtable_input_slutA"><input class="inputtable_slut" type="text" name="slutD" value="' . (isset($_POST['slutD']) ? $slutD : null) . '"></td> 
<td class="inputtable_input_pauseA"><input class="inputtable_pause" type="text" name="pauseD" value="' . (isset($_POST['pauseD']) ? $pauseD : null) . '"></td> 
<td class="inputtable_input_egenbA"><input class="inputtable_egenb" type="text" name="egenbD" value="' . (isset($_POST['egenbD']) ? $egenbD : null) . '"></td> 
<td class="inputtable_input_totA"><input class="inputtable_tot" type="text" name="totD" value="' . (isset($_POST['totD']) ? $totD : null) . '"></td> 
</tr><tr> 
<td class="inputtable_label_day"><label for="day">Fredag</label></td> 
<td class="inputtable_input_dateA"><input class="inputtable_date" type="text" name="dateE" value="' . (isset($_POST['dateE']) ? $dateE : null) . '"></td> 
<td class="inputtable_input_startA"><input class="inputtable_start" type="text" name="startE" value="' . (isset($_POST['startE']) ? $startE : null) . '"></td> 
<td class="inputtable_input_slutA"><input class="inputtable_slut" type="text" name="slutE" value="' . (isset($_POST['slutE']) ? $slutE : null) . '"></td> 
<td class="inputtable_input_pauseA"><input class="inputtable_pause" type="text" name="pauseE" value="' . (isset($_POST['pauseE']) ? $pauseE : null) . '"></td> 
<td class="inputtable_input_egenbA"><input class="inputtable_egenb" type="text" name="egenbE" value="' . (isset($_POST['egenbE']) ? $egenbE : null) . '"></td> 
<td class="inputtable_input_totA"><input class="inputtable_tot" type="text" name="totE" value="' . (isset($_POST['totE']) ? $totE : null) . '"></td> 
</tr><tr> 
<td class="inputtable_label_day"><label for="day">Lørdag</label></td> 
<td class="inputtable_input_dateA"><input class="inputtable_date" type="text" name="dateF" value="' . (isset($_POST['dateF']) ? $dateF : null) . '"></td> 
<td class="inputtable_input_startA"><input class="inputtable_start" type="text" name="startF" value="' . (isset($_POST['startF']) ? $startF : null) . '"></td> 
<td class="inputtable_input_slutA"><input class="inputtable_slut" type="text" name="slutF" value="' . (isset($_POST['slutF']) ? $slutF : null) . '"></td> 
<td class="inputtable_input_pauseA"><input class="inputtable_pause" type="text" name="pauseF" value="' . (isset($_POST['pauseF']) ? $pauseF : null) . '"></td> 
<td class="inputtable_input_egenbA"><input class="inputtable_egenb" type="text" name="egenbF" value="' . (isset($_POST['egenbF']) ? $egenbF : null) . '"></td> 
<td class="inputtable_input_totA"><input class="inputtable_tot" type="text" name="totF" value="' . (isset($_POST['totF']) ? $totF : null) . '"></td> 
<br></tr><tr> 
<td class="inputtable_label_day"><label for="day">Søndag</label></td> 
<td class="inputtable_input_dateA"><input class="inputtable_date" type="text" name="dateG" value="' . (isset($_POST['dateG']) ? $dateG : null) . '"></td> 
<td class="inputtable_input_startA"><input class="inputtable_start" type="text" name="startG" value="' . (isset($_POST['startG']) ? $startG : null) . '"></td> 
<td class="inputtable_input_slutA"><input class="inputtable_slut" type="text" name="slutG" value="' . (isset($_POST['slutG']) ? $slutG : null) . '"></td> 
<td class="inputtable_input_pauseA"><input class="inputtable_pause" type="text" name="pauseG" value="' . (isset($_POST['pauseG']) ? $pauseG : null) . '"></td> 
<td class="inputtable_input_egenbA"><input class="inputtable_egenb" type="text" name="egenbG" value="' . (isset($_POST['egenbG']) ? $egenbG : null) . '"></td> 
<td class="inputtable_input_totA"><input class="inputtable_tot" type="text" name="totG" value="' . (isset($_POST['totG']) ? $totG : null) . '"></td></tr> 
<tr><td class="inputtable_submit"><input type="submit" name="submit" value="send"></td></tr></table> 
</form>'; 

//datepickertester ...This work..... 
datepickertester(); 

// my_scripts_method .....this dossent work...... 
my_scripts_method(); 

} 

==== ================================================== =======

Немного благодаря kaloya п ты была большая помощь :)

я отправил конечный результат ниже, что получил это работает, как он должен в случае, если кто-то должен это нужно в качестве ссылки :)

function scripts_registration() { 
    include 'js/jscript-test.js'; 
    wp_enqueue_script('jquery-ui-datepicker'); 
    wp_enqueue_style('datepicker', plugins_url('/js/css/datepicker.css', __FILE__)); 
    wp_enqueue_script('jscript-test', plugins_url('/js/jscript-test.js', __FILE__)); 
} 
add_action('wp_enqueue_scripts', 'scripts_registration'); 
+0

ли это добавление любого сценария тега в страницу? Если да, то какой путь? Вы включаете 'wp_footer' в свою тему? http://codex.wordpress.org/Function_Reference/wp_footer, где ваши сценарии загружаются в –

+0

, нет его нет. и да, я включил wp_footer в мою тему :) – Ghostetr

ответ

0

Во-первых вы используете крючок wp_register_script. Плохая вещь об этом крючке - это не существует. :) Вы должны использовать wp_enqueue_scripts.

Второй вещь, вы пытаетесь епдиеей ваш сценария используя wp_enqueue_ стиля. Вы должны использовать wp_enqueue_script.

Вы можете объединить весь код выше в следующем:

function scripts_registration() { 
    wp_enqueue_script('jquery-ui-datepicker'); 
    wp_enqueue_style('datepicker', plugins_url('/js/css/datepicker.css', __FILE__)); 
    wp_enqueue_script('jscript-test', plugins_url('/js/jscript-test.js', __FILE__)); 
} 
add_action('wp_enqueue_scripts', 'scripts_registration'); 

Артикул:

http://codex.wordpress.org/Function_Reference/wp_register_script http://codex.wordpress.org/Function_Reference/wp_enqueue_script http://codex.wordpress.org/Plugin_API/Action_Reference/wp_enqueue_scripts

+0

все еще не работает – Ghostetr

+0

Я отредактировал свой ответ, так что теперь включение происходит в одной функции. Если он все еще не работает, проверьте, есть ли в консоли какие-либо ошибки, и если файл сценария входит в эту страницу. – Kaloyan

+0

благодарит за помощь kaloyan! я сделал трюк, теперь его работа как шарм :) – Ghostetr

Смежные вопросы