为了获得Wordpress的更多经验,我深入研究了它的代码库来研究它的内部工作和工作流程,当我看到它时,我感到非常惊讶:
它们实现了register_globals(摘自wp-includes/class-wp.php):
// The query_vars property will be extracted to the GLOBALS. So care should
// be taken when naming global variables that might interfere with the
// WordPress environment.
function register_globals() {
global $wp_query;
// Extract updated query vars back into global namespace.
foreach ( (array) $wp_query->query_vars as $key => $value) {
$GLOBALS[$key] = $value;
}
Run Code Online (Sandbox Code Playgroud)它们依赖于魔术引号(来自wp-includes/functions.php.maxy_quotes_gpc的exerpt在引导时关闭,在调用此函数之前):
function add_magic_quotes( $array ) {
foreach ( (array) $array as $k => $v ) {
if ( is_array( $v ) ) { …
Run Code Online (Sandbox Code Playgroud)有人可以告诉我如何将这个javascript文件包含到我的wordpress插件中.我已经尝试了所有wp_enqeue_script()方法但没有任何反应.
好的,这是我的示例插件代码,其中的注释解释了我想要的内容.
<?php
/*
Plugin Name: Ava Test
Plugin URI: http://#.com
Description: A plugin that is used for my javascript tests
Author: Ronny Kibet
Author URI: http://ronnykibet.com
version: 1.001
*/
include(popup.js);
/*when I include it this way, it works fine, but gives an error when I activate the plugin
'plugin generated 453 characters ...'
*/
function popup() {
$src = plugins_url('popup.js', __FILE__);
wp_register_script( 'popup', $src );
wp_enqueue_script( 'popup' );
}
/*
when I included it this way, plugin is activated …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下语句,但不确定如何$variables
正确地获取语句内部:
mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address)
VALUES ('$user_email', '$user_refer', '$user_share', '$_SERVER['REMOTE_ADDR']')");
Run Code Online (Sandbox Code Playgroud) 我有两个表,比如说"users"和"users_actions",其中"users_actions"与用户有一个hasMany关系:
用户
id | name | surname | email...
Run Code Online (Sandbox Code Playgroud)
行动
id | id_action | id_user | log | created_at
Run Code Online (Sandbox Code Playgroud)
Model Users.php
class Users {
public function action()
{
return $this->hasMany('Action', 'user_id')->orderBy('created_at', 'desc');
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想检索列表所有的用户与他们的最后一个动作.
我看到 Users::with('action')->get();
只通过简单地获取关系的第一个结果就可以轻松地给我最后一个动作:
foreach ($users as $user) {
echo $user->action[0]->description;
}
Run Code Online (Sandbox Code Playgroud)
但我当然希望避免这种情况,只为每个用户选择最后一个动作.
我尝试使用约束,比如
Users::with(['action' => function ($query) {
$query->orderBy('created_at', 'desc')
->limit(1);
}])
->get();
Run Code Online (Sandbox Code Playgroud)
但是由于Laravel执行此查询,这给了我一个不正确的结果:
SELECT * FROM users_actions WHERE user_id IN (1,2,3,4,5)
ORDER BY created_at
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
这当然是错的.有没有可能在没有使用Eloquent对每条记录执行查询的情况下获得此功能?我是否犯了一些我没有看到的明显错误?我很擅长使用Eloquent,有时甚至是关系让我烦恼.
编辑: …
在对PHP中的命名空间进行一些研究之后,我试图弄清楚除了将库项目组合在一起并重复使用相同的类名之外还有什么真正的好处.
关于名称空间我不喜欢的是这些额外的行位于文件的顶部,你从'use core\whatever\class'调用类,这与标准方法没有关系.
另外 - 我无法找到有关的信息 - 在我们需要使用两个具有相同名称的类但在不同文件夹中包含相同方法名称的情况下会发生什么?我们仍然需要调用命名空间,但代码如何确定应该使用哪个类的方法?
我刚开始使用命名空间,请原谅我这个问题听起来很基本.
另外 - 它如何与静态方法一起工作 - 例如Helper类 - 我是否还必须指出我需要这个命名空间'use core\whatever\Helper'?
我的问题是关于为什么一段代码工作而另外两段没有,以及我如何获得无效的代码.
有效的代码:
mysql_select_db("webuser1", $con);
mysql_query("INSERT INTO users (column 1, column2) VALUES ('value1', 'value2')");
mysql_close($con);
Run Code Online (Sandbox Code Playgroud)
代码no1没有($ var1包含'value1'等):
mysql_select_db("webuser1", $con);
mysql_query("INSERT INTO users (column 1, column2) VALUES ($var1, $var2)");
mysql_close($con);
Run Code Online (Sandbox Code Playgroud)
并且代码no2不起作用($ _POST ['value1']包含'value1'等):
mysql_select_db("webuser1", $con);
mysql_query("INSERT INTO users (column 1, column2) VALUES ($_POST['value1'], $_POST['value2'])");
mysql_close($con);
Run Code Online (Sandbox Code Playgroud)
我不应该能够在mysql中插入$ var或$ _POST吗?我希望你没有发现这个Q傻,但我一直在寻找解决方案,但我还没有理解它们.谢谢
我有一个阵列
Array
(
[fbid] = Array
(
**[0] => 115637705237540
[1] => 115637705237540**
[2] => 111723238962320
[3] => 111723248962319
[4] => 112721842195793
[5] => 112567698877874
[6] => 111844022283575
**[7] => 115637705237540**
[8] => 111840252283952
[9] => 109642909170353
)
[fb_parentid] = Array
(
[0] => 571228125
[1] => 571228125
[2] => 571228125
[3] => 571228125
[4] => 571228125
[5] => 571228125
[6] => 571228125
[7] => 571228125
[8] => 571228125
[9] => 571228125
)
)
Run Code Online (Sandbox Code Playgroud)
这里0,1和7重复.首先,我想获得重复索引(0,1,7).其次,我想显示一个索引.在上面的例子中仅为0.
之后我想从[fb_parentid]和[fbid]中删除1和7
你能帮助我吗 ?
这个问题可能听起来很愚蠢,但它让我头晕目眩.我想制作一种由不同幻灯片组成的垂直滚动演示文稿; 效果应与此网站"相似":http://www.soleilnoir.net/believein/#/start
我创建了一个包含不同幻灯片的无序列表:
<div id="main">
<div id="content">
<ul id="bg">
<li id="slide1"> <!-- content --></li>
<li id="slide2"> <!-- content --></li>
<!-- and so on -->
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经position:fixed
在页面的中心给出了所有幻灯片的内容(到目前为止是图像),以及一个不同的z-index来叠加幻灯片和图像.就像是
----- slide 1
§§§ image 2
----- slide 2
§§§ image 3
---- slide 3
Run Code Online (Sandbox Code Playgroud)
等等
这当然仅在某种意义上起作用:当滚动时,幻灯片揭示了下面的幻灯片,但是由于它们的固定位置,以前的图像总是可见而全部从流中移除.
所以我想给图像一个position:absolute
(并给予position:relative
它<li>
),但这并不会使它们在页面的中心"粘",直到新的幻灯片到达并覆盖它,它们当然自然地跟随它们的父母<li>
的运动.
我完全不知所措,还有如何在窗口中获取当前的可见列表.我看了所有的内置的jQuery提供的功能:scrollTop()
,offset().top
,position().top
,我得到$(window).height()
的$('#container').height()
,<li>
身高是固定的,等,但我得到的是元素的"绝对"位置(我的意思是,它不会改变滚动),我无法弄清楚如何说幻灯片在屏幕中间,以便我可以做某事(但仍然不知道是什么).
我确定我在这里遗漏了一些明显的东西.我已经研究了链接网站的代码,虽然我几乎可以理解它的一切,但我还是无法弄清楚它是如何得到当前的幻灯片(此外,它与我的工作方式不同,因为它加载动画的GIF动态和只对每张幻灯片都这样做.在我的每张幻灯片中都是一个包含不同元素,动画等的容器.
例如,如果$('li#slide3')
是在视图内,我该如何获得?如何解决堆叠图像问题?我是否需要动态地将它们设置为"固定",或者在每次滚动时重新计算它们的位置以便做到这position:absolute
一点?对于这一秒,我仍然需要将每个元素的位置与固定点进行比较(我相信$(window).scrollTop()
,到目前为止,滚动时总是为0),但我无法弄清楚如何. …
所以这就是问题所在.有一个HTML/JS代码,但我无法读取v3变量.简而言之,之后的任何事物DDDD(D,{"COM":"lng","leaf":145,"AXIS":true});
(这是某种预定义的随机数组)都是不可读的(或作为JS代码被忽略).为什么?我怎样才能获得v3的内容?这是一个javascript解析错误吗?
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<script type="text/javascript">
<!--
var v1 = 12345;
var v2 = "Hello world";
DDDD(D,{"COM":"lng","leaf":145,"AXIS":true});
var v3 = "World Hello!!!";
//-->
</script>
</head>
<!-- some html code -->
<script>
alert("This is "+v3);
</script>
<!-- some html code -->
</html>
Run Code Online (Sandbox Code Playgroud)