问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

wordpress 函数 如何调用

发布网友 发布时间:2022-04-07 19:53

我来回答

2个回答

懂视网 时间:2022-04-08 00:14

操作函数,$query为SQL语句,提交给数据库执行,结果分两种情况:

1). 如果是“insert|delete|update|replace”, 返回受影响行数,在“insert|replace”这种情况下,该函数会用$this->insert_id记录下新插入的ID。

2). 如果是“select”,该函数会用$this->last_result记录下查询到结果集,返回查询到的记录行数。

如果出错,则返回FALSE。

实例:

<?php
$wpdb->query(
    "
    UPDATE $wpdb->posts 
    SET post_parent = 7 
    WHERE ID = 15 AND post_status = ‘static‘
    "
);
?>

2、function escape($data)

使用反斜线引用数据,也就是使用魔术引号。

实例:

<?php
$name = $wpdb->escape($name);
$email = $wpdb->escape($email);
$wpdb->query("INSERT INTO myusers (id, name, email) VALUES (NULL, ‘$name‘, ‘$email‘)");
?>

3、function insert($table, $data, $format = null)

这是插入记录函数,第一个参数是表的字段数组,第二个是数据数组,第三个用于规定$data中每个值的数据类型。插入数据返回1,否则为0。

实例:

<?php
$wpdb->insert( 
    ‘table‘, 
    array( 
        ‘column1‘ => ‘value1‘, 
        ‘column2‘ => 123 
    ), 
    array( 
        ‘%s‘, 
        ‘%d‘ 
    ) 
);
?>

4、function update($table, $data, $where, $format = null, $where_format = null)

这是更新记录函数,第一个参数是表的字段数组,第二个是数据数组,第三个是条件数组,第四个和第五个分别用于规定$data和$where中每个值的数据类型。更新了为1,否则为0。

实例:

<?php
$wpdb->update( 
    ‘table‘, 
    array( 
        ‘column1‘ => ‘value1‘,  // string
        ‘column2‘ => ‘value2‘   // integer (number) 
    ), 
    array( ‘ID‘ => 1 ), 
    array( 
        ‘%s‘,   // value1
        ‘%d‘    // value2
    ), 
    array( ‘%d‘ ) 
);
?>

5、function get_var($query = null, $x = 0, $y = 0)

这个函数只返回一个值,默认是第0行第0列。如果$query不为空,首先执行查询,如果$query为空的话,则表示从cache中选出;然后返回第X列第Y行的值。

实例:

<?php
$user_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->users;" ) );
echo "<p>User count is {$user_count}</p>";
?>

6、function get_row($query = null, $output = OBJECT, $y = 0)

返回一行,$output指定返回的类型,可以是ARRAY_A(关联数组)、ARRAY_N(数字数组)或者OBJECT(对象)。$y指定第几行。

实例:

默认情况下,$output的值为OBJECT,那么用法如下:

<?php
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10");
echo $mylink->link_id; // prints "10"
?>

如果$output的值为ARRAY_A,那么用法如下:

<?php
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10",ARRAY_A);
echo $mylink[‘link_id‘]; // prints "10"
?>

如果$output的值为ARRAY_N,那么用法如下:

<?php
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10",ARRAY_N);
echo $mylink[1]; // prints "10"
?>

7、function get_col($query = null, $x = 0)

返回一列,$x指定第几列。

实例:

<?php
$names = $wpdb->get_col("SELECT name, email FROM myusers", 0)
foreach ( $names as $name ) {
    echo $name;
}
?>

8、function get_results($query = null, $output = OBJECT)

返回查询的结果集,允许以ARRAY_A、ARRAY_N或者OBJECT三种方式返回。

实例:

<?php
$fivesdrafts = $wpdb->get_results( 
    "
    SELECT ID, post_title 
    FROM $wpdb->posts
    WHERE post_status = ‘draft‘ 
        AND post_author = 5
    "
);

foreach ( $fivesdrafts as $fivesdraft ) 
{
    echo $fivesdraft->post_title;
}
?>

9、function get_col_info($info_type = ‘name‘, $col_offset = -1)

返回字段信息。

实例:

<?php
$col_name = $wpdb->get_col_info(‘name‘, 0);
echo $col_name;
?>

10、function prepare($query = null)

这是一个可变参数函数,即函数的参数个数不确定。$query为SQL语句,其中可以包含像%s和%d这样的占位符,其它所有非占位符里面的%都要使用%%来代替。由于SQL语句中可能含有像单引号、双引号这样的特殊字符,如果不进行处理就直接提交给数据库,可能会导致错误或者出现安全问题。为此,我们可以通过prepare函数来对SQL语句进行预处理。其实该函数的用法非常简单,就跟C语言中的sprintf()和vsprintf()函数差不多。

用法:

<?php $sql = $wpdb->prepare( ‘query‘ [, value_parameter, value_parameter ...] ); ?>

实例:

<?php
$metakey    = "Harriet‘s Adages";
$metavalue  = "WordPress‘ database interface is like Sunday Morning: Easy.";

$wpdb->query( $wpdb->prepare( 
    "
        INSERT INTO $wpdb->postmeta
        ( post_id, meta_key, meta_value )
        VALUES ( %d, %s, %s )
    ", 
    10, 
    $metakey, 
    $metavalue 
) );
?>

当然,还有一些不常使用的函数,这里就不详细介绍了。另外还有两个常量:SAVEQUERIES和WP_DEBUG。设置SAVEQUERIES常量为TRUE,可以把在数据库里执行的所有查询及其停止时间保存到$this->queries这个数组中,以后调试的时候可以使用;而设置WP_DEBUG常量为TRUE,则可以输出错误。不过,这两个常量开关默认都没有打开,我们在测试的时候,可以在wp_config.php文件中将其开启。


WordPress数据库操作函数详解

标签:

热心网友 时间:2022-04-07 21:22

add_filter( 'the_content', 'deel_copyright' );
function deel_copyright($content) {
    if( is_single() ){    
        $content.= '<p>转载请注明:<a href="'.get_bloginfo('url').'">'.get_bloginfo('name').'</a> » <a href="'.get_permalink().'">'.get_the_title().'</a></p>';
    }    
        return $content;
    }

提供参考

追问我是说调用这组函数的代码
这样写对不对 怎么改

追答我已经给你写了怎么调用deel_copyright这个函数的方法了啊。
而且已经修改了你在函数内怎么判断当前为文章页面。

如果像你那样直接调用函数的话,函数体内的get_permalink和get_the_title是没有正确结果返回的

所以正确的调用应该利用wordpress的hook机制,将该函数添加到the_content钩子上。
不知道你能不能听明白。
动手试试吧,把我给你的代码放在functions.php中,然后看文章页有没有变化。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 微信寄快递怎么取消订单_取消订单方法介绍 300兆宽带用什么路由器好? x射线衍射、x荧光、直读光谱3种仪器,都有哪些区别,原理是什么?检测领域? MCS-51单片机的程序计数器有几位? 计数器的个位和十位上一共有4颗珠子表示的数有可能是? 如何计算器表示多位数 7位计数器需要多少逻辑门电路???求解 台达PLc32位计数器设置值是多少 多功能8位十进制数字频率计数器的设计 单片机中用到多个定时计数器怎么办,可以复用吗?怎么用,我要三个计时器,一个脉冲调制输出! 什么是计算器的8位和12位 6位脉冲计数器原理图 一个5位的计数器和一个6位的计数器合并在一起能表示多少种状态,说明分析过程? n位计数器一般由几个触发器组成? 组成进制数N=60的多位二进制计数器所需要的最少触发器个数n为________。 设计一个12位的加法计数器,要求如下:。 plc中的16位计数器和32位计数器有什么区别 有没有什么播放器?可以不联网就可以看电影的? WPS粗线怎么调整 wps格子线怎么弄 wps如何插入线 PPT如何转换成视频,要简单好用的,我用的是2003版本,求各位大虾。。。 急急急。。。。。。 金立手机截屏的快捷键是什么 金立s11s怎么截屏 金立手机怎么截屏。 公户车个人能买保险吗 公司户可以买个人保险吗 银行贷款线上办,但是实际是线下办的,银行违法了吗? 公司户的车被保险人可以是个人吗 农商银行收款在微信上属于什么线下门店支付吗? 农商银行APP有50000额度,不符合线上申请条件是什么意思? 宜兴农商行待遇怎么样? 宜兴农商行面试内幕严不严重? 嬴政5级铭文怎么佩最强 长江里面怎么钓鱼 江河如何钓鱼 请问江里面怎么钓鱼? 江里如何钓鲤鱼 在江里钓鱼要用什么杆钓鱼的好 苹果手机如何将照片文字转换成word文档- 问一问 玫瑰花瓣可以晒干吗? word中如何设置改写