wordpress - jQuery不会在插件中工作,但在其他地方工作吗?

时间:2016-07-28 13:08:16

标签: php jquery wordpress

很抱歉这个简单的问题,(嘿,轻松代表!)但是我从1天开始就是PHP的新手。我必须创建一个wordpress插件/小部件。我在标题中排队了jquery:

  jQuery('.court').click(function () {
      alert(jQuery(this).attr('id'));
   });

并创建了一个打算在插件中单击的类。

<?php
interface IDatabase {
    function connect();
	function readCSV();
}


class Db implements IDatabase
{
    private $connection;
    private static $instance;

    private function __construct()
    {
        $host = "localhost";
        $user = "root";
        $pass = "";
        $name = "cart";

        $this->connection = new mysqli($host, $user, $pass, $name);
   
   if(mysqli_connect_error()) {
			trigger_error("Failed to conencto to MySQL: " . mysqli_connect_error(),
				 E_USER_ERROR);
		}

   }

    public  function connect()
    {
        if (self::$instance == null) {			
            self::$instance = new Db();
        }

        return self::$instance;
    }

    public function query($sql)
    {
        $result = $this->connection->query($sql);
        $records = array();
        while ($row = $result->fetch_assoc()) {
            $records[] = $row;
        }
        return $records;
    }
}


$db1 = Db::connect();





$query = $db1->query("SELECT * FROM user_info");
foreach($query as $row=>$val)
{ echo '<tr>';
                echo '<td>'.$val['id'].'</td>';
                echo '<td>'.$val['username'].'</td>';
                echo '<td>'.$val['email'].'</td>';
				echo '<td>'.$val['password'].'</td>';
				echo '</tr>';
}				

class csv implements IDatabase{
public function readCSV($f){fclose($f);}



$f = fopen("http://localhost/csv/cr.csv", "r");
while (($line = fgetcsv($f)) !== false) {
        echo "<tr>";
		$data = count($line); 
        foreach ($line as $cell) {
                echo "<td>" . htmlspecialchars($cell) . "</td>";
        }
        echo "</tr>\n";
}

?>

简单的东西,如果我将代码放在页脚中(除了一些JQ之外没有别的东西)它可以工作。如果它在插件中,它不起作用。 Javascript提醒(&#39;热潮&#39;);在插件中工作。

为了在插件中使用jquery,我缺少什么?我显然不想把它放在页脚里,因为它不会打包在那里。

2 个答案:

答案 0 :(得分:1)

我必须创建一个wordpress插件/小部件。你是从Scratch编写一个插件吗?如果是这样;尝试在插件的主文件中的任何位置添加以下代码:

    <?php
        function myPluginScripts() {
            wp_enqueue_script( 'jquery-my-plugin', get_site_url() . "/wp-includes/js/jquery/jquery.js", array(), '');

            // IN THIS FUNCTION, YOU CAN ADD OTHER JS FILES AS WELL LIKE SO 
            // UNCOMMENT THE LINE BELOW & CHANGE THE VALUES IF YOU NEED TO
            // wp_enqueue_script( 'my-plg-js', 'path/to/my-plg.js', array('jquery'), '');
       }

       add_action('wp_enqueue_scripts', 'myPluginScripts');

答案 1 :(得分:0)

您需要使用wp_enqueue_script并明确指定您的脚本作为对jquery的依赖。然后WordPress将确保您的脚本稍后加载,因此可以使用jQuery对象。