WordPress 没有调用默认的 jQuery 文件
WordPress is not calling the default jQuery file
我正在尝试为使用 DataTable 显示数据库查询的插件调用 jQuery DataTable JS 文件。 JS文件存储在服务器本地。
WordPress:v4.0.1
jQuery:v1.11.1
数据表:v1.10.5
未调用 WordPress 默认 jQuery 文件。当我注册并调用托管在 Google 上的 jQuery 文件时,它似乎可以正常工作。发生这种情况有原因吗?
这是我目前的情况:
functions.php:
function load_jquery_datatables() {
wp_enqueue_script('jquery');
wp_register_script( 'jquery-datatables', plugins_url('js/jquery.dataTables.min.js'), array('jquery'));
wp_enqueue_script('jquery-datatables');
}
index.php:
<?php add_action('wp_enqueue_scripts', 'load_jquery_datatables');?>
<script>
$(document).ready(function() {
$('#example').DataTable();
});
</script>
<table id="example" class="display">
<form>
<thead>
<tr>
<td style="text-align: center;"><input type="checkbox" id="selectall"></td>
<?php
foreach ( $wpdb->get_col( "DESC " . $table_name, 0 ) as $column_name )
{
echo '<th style="text-align: center;">' . $column_name . '</th>';
}
?>
</tr>
</thead>
<tfoot>
<tr>
<td style="text-align: center;"><input type="checkbox" id="selectall"></td>
<?php
foreach ( $wpdb->get_col( "DESC " . $table_name, 0 ) as $column_name )
{
echo '<th style="text-align: center;">' . $column_name . '</th>';
}
?>
</tr>
</tfoot>
<tbody>
<?php
foreach ( $results as $row )
{
echo '<tr>';
echo '<td><input type=\'checkbox\' class=\'check\' value=' . $id . '></td>';
echo '<td>' . $row->id . '</td>';
echo '<td>' . $row->status . '</td>';
echo '<td>' . $row->create_time . '</td>';
echo '<td>' . $row->start_time . '</td>';
echo '<td>' . $row->duration . '</td>';
echo '<td>' . $row->source . '</td>';
echo '<td>' . $row->source_id . '</td>';
echo '</tr>';
}
?>
</tbody>
</form>
</table>
创建 WordPress 主题已经有一段时间了,但我一直使用这种方法并且效果很好!
FUNCTIONS.PHP
function custom_function_name() {
wp_enqueue_script("jquery");
wp_head(); ?>
<script type="text/javascript" src="<?php bloginfo("template_url"); ?>/js/yourScript.js"></script><?php
}
您 HEADER.PHP 而非 INDEX.PHP
中的号召性用语
<head>
// Link stylesheets and page titles
// Call your function
<?php custom_function_name(); ?>
<script>
$(document).ready(function() {
$('#example').DataTable();
});
</script>
</head>
以下更改解决了问题:
将 index.php 中的 jQuery 更改为:
<script>
$(document).ready(function() {
$('#example').DataTable();
});
</script>
以下内容:
<script>
jQuery(document).ready(function() {
$('#example').DataTable();
});
</script>
我正在尝试为使用 DataTable 显示数据库查询的插件调用 jQuery DataTable JS 文件。 JS文件存储在服务器本地。
WordPress:v4.0.1 jQuery:v1.11.1 数据表:v1.10.5
未调用 WordPress 默认 jQuery 文件。当我注册并调用托管在 Google 上的 jQuery 文件时,它似乎可以正常工作。发生这种情况有原因吗?
这是我目前的情况:
functions.php:
function load_jquery_datatables() {
wp_enqueue_script('jquery');
wp_register_script( 'jquery-datatables', plugins_url('js/jquery.dataTables.min.js'), array('jquery'));
wp_enqueue_script('jquery-datatables');
}
index.php:
<?php add_action('wp_enqueue_scripts', 'load_jquery_datatables');?>
<script>
$(document).ready(function() {
$('#example').DataTable();
});
</script>
<table id="example" class="display">
<form>
<thead>
<tr>
<td style="text-align: center;"><input type="checkbox" id="selectall"></td>
<?php
foreach ( $wpdb->get_col( "DESC " . $table_name, 0 ) as $column_name )
{
echo '<th style="text-align: center;">' . $column_name . '</th>';
}
?>
</tr>
</thead>
<tfoot>
<tr>
<td style="text-align: center;"><input type="checkbox" id="selectall"></td>
<?php
foreach ( $wpdb->get_col( "DESC " . $table_name, 0 ) as $column_name )
{
echo '<th style="text-align: center;">' . $column_name . '</th>';
}
?>
</tr>
</tfoot>
<tbody>
<?php
foreach ( $results as $row )
{
echo '<tr>';
echo '<td><input type=\'checkbox\' class=\'check\' value=' . $id . '></td>';
echo '<td>' . $row->id . '</td>';
echo '<td>' . $row->status . '</td>';
echo '<td>' . $row->create_time . '</td>';
echo '<td>' . $row->start_time . '</td>';
echo '<td>' . $row->duration . '</td>';
echo '<td>' . $row->source . '</td>';
echo '<td>' . $row->source_id . '</td>';
echo '</tr>';
}
?>
</tbody>
</form>
</table>
创建 WordPress 主题已经有一段时间了,但我一直使用这种方法并且效果很好!
FUNCTIONS.PHP
function custom_function_name() {
wp_enqueue_script("jquery");
wp_head(); ?>
<script type="text/javascript" src="<?php bloginfo("template_url"); ?>/js/yourScript.js"></script><?php
}
您 HEADER.PHP 而非 INDEX.PHP
中的号召性用语<head>
// Link stylesheets and page titles
// Call your function
<?php custom_function_name(); ?>
<script>
$(document).ready(function() {
$('#example').DataTable();
});
</script>
</head>
以下更改解决了问题:
将 index.php 中的 jQuery 更改为:
<script>
$(document).ready(function() {
$('#example').DataTable();
});
</script>
以下内容:
<script>
jQuery(document).ready(function() {
$('#example').DataTable();
});
</script>