在wordpress主题根目录下新建一个PHP文件怎样才能调用数据库全局...
展开全部 1. 尝试设置一个页面模板1)拷贝一个index.php并改名为其它名,如list.php;2)在list.php页面最顶部添加以上两步就可以创建一个页面模板了,修改并保存好这个文件后,创建一个新页面或者修改已存在的页面。
在右下边有个“页面模板”的面板,在下拉菜单中选中“友链”后保存就可以了。
然后在页面中添加任何内容,包括html代码就可以显示了。
可是我的需求是要自己完成PHP代码获取数据并展示,它不能这么做。
2. 调用 WordPress 的 API实现URL正确跳转这种方法的自由度较高,并且可以创建非WordPress格式的URL。
比如我们要把 www.example.com/list 转交给主题文件夹下的 /custom/list.php 来处理,就可以用这种方式来处理。
这种方法用到 template redirect 钩子,template redirect 是 WordPress 在预处理好所有参数设置之后决定调用主题模板的时候调用的。
在functions.php模板函数文件中添加以下实例代码:function loadCustomTemplate($template) { global $wp_query; if(!file_exists($template))return; $wp_query->is_page = true; $wp_query->is_single = false; $wp_query->is_home = false; $wp_query->comments = false; // if we have a 404 status if ($wp_query->is_404) { // set status of 404 to false unset($wp_query->query["error"]); $wp_query->query_vars["error"]=""; $wp_query->is_404=false; } // change the header to 200 OK header("HTTP/1.1 200 OK"); //load our template include($template); exit;}function templateRedirect() { $basename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']); loadCustomTemplate(TEMPLATEPATH.'/custom/'."/$basename.php");}add_action('template_redirect', 'templateRedirect');这样就实现了 WordPress 查找 /custom 文件夹下的 php 文件,并且将相匹配的 URL 请求转交给对应的 php 文件来处理的效果,与此同时,这个 php 文件还保持了对 WordPress API 的调用,因此留给我们的空间非常大。
接下来就可以在 /custom 文件夹下自定义一个list.php文件然后通过链接www.example.com/list访问。
3. 添加页面内容,获取自定义数据库/表中的内容然后就可以根据需要自己需要来实现自己想要的功能,这里需要有以下几点要处理:1)如何操作数据库WordPress提供了一个全局变量$wpdb,并将其实例化为wpdb类的对象。
这样我们就可以直接使用$wpdb来调用所有的数据库操作函数。
通过这个$wpdb对象,我们可以对WordPress数据库进行任何操作,包括建表、查询、删除、更新等。
使用$wpdb->get_results实现执行sql语句操作数据库,并获取结果。
global $wpdb;$sql= "SELECT * FROM ".$wpdb->prefix.table;$a = $wpdb->get_results($sql);2)使用wordpress的样式通过F12查看首页代码就可以发现只要使用对应的class样式就能轻松让页面统一规整。
那么就把对应的html添加到自定义PHP页面中即可。
3)利用wordpress的规则轻松实现翻页wordpress已经默认支持翻页,格式如:www.example.com/list?page=$1,只要在自定义的页面里面定义好每页返回正确的内容就好啦。
4. 设置nginx rewrite规则可读性强的URL一定不能是www.example.com/list?page=2这样的格式,对爬虫也不友好,那就需要配置好rewrite规则,我使用的是nginx的配置为:rewrite ^(.*)/indexed/page/([0-9]+)$ $1/indexed?page=$2 last;到现在为止,离成功只有一步之遥了,那就是新建一个页面, 大功告成!
如何在Wordpress中自定义PHP页面并操作数据库
1. 尝试设置一个页面模板1)拷贝一个index.php并改名为其它名,如list.php;2)在list.php页面最顶部添加以上两步就可以创建一个页面模板了,修改并保存好这个文件后,创建一个新页面或者修改已存在的页面。
在右下边有个“页面模板”的面板,在下拉菜单中选中“友链”后保存就可以了。
然后在页面中添加任何内容,包括html代码就可以显示了。
可是我的需求是要自己完成PHP代码获取数据并展示,它不能这么做。
2. 调用 WordPress 的 API实现URL正确跳转这种方法的自由度较高,并且可以创建非WordPress格式的URL。
比如我们要把 www.example.com/list 转交给主题文件夹下的 /custom/list.php 来处理,就可以用这种方式来处理。
这种方法用到 template redirect 钩子,template redirect 是 WordPress 在预处理好所有参数设置之后决定调用主题模板的时候调用的。
在functions.php模板函数文件中添加以下实例代码:function loadCustomTemplate($template) { global $wp_query; if(!file_exists($template))return; $wp_query->is_page = true; $wp_query->is_single = false; $wp_query->is_home = false; $wp_query->comments = false; // if we have a 404 status if ($wp_query->is_404) { // set status of 404 to false unset($wp_query->query["error"]); $wp_query->query_vars["error"]=""; $wp_query->is_404=false; } // change the header to 200 OK header("HTTP/1.1 200 OK"); //load our template include($template); exit;}function templateRedirect() { $basename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']); loadCustomTemplate(TEMPLATEPATH.'/custom/'."/$basename.php");}add_action('template_redirect', 'templateRedirect');这样就实现了 WordPress 查找 /custom 文件夹下的 php 文件,并且将相匹配的 URL 请求转交给对应的 php 文件来处理的效果,与此同时,这个 php 文件还保持了对 WordPress API 的调用,因此留给我们的空间非常大。
接下来就可以在 /custom 文件夹下自定义一个list.php文件然后通过链接www.example.com/list访问。
3. 添加页面内容,获取自定义数据库/表中的内容然后就可以根据需要自己需要来实现自己想要的功能,这里需要有以下几点要处理:1)如何操作数据库WordPress提供了一个全局变量$wpdb,并将其实例化为wpdb类的对象。
这样我们就可以直接使用$wpdb来调用所有的数据库操作函数。
通过这个$wpdb对象,我们可以对WordPress数据库进行任何操作,包括建表、查询、删除、更新等。
使用$wpdb->get_results实现执行sql语句操作数据库,并获取结果。
global $wpdb;$sql= "SELECT * FROM ".$wpdb->prefix.table;$a = $wpdb->get_results($sql);2)使用wordpress的样式通过F12查看首页代码就可以发现只要使用对应的class样式就能轻松让页面统一规整。
那么就把对应的html添加到自定义PHP页面中即可。
3)利用wordpress的规则轻松实现翻页wordpress已经默认支持翻页,格式如:www.example.com/list?page=$1,只要在自定义的页面里面定义好每页返回正确的内容就好啦。
4. 设置nginx rewrite规则可读性强的URL一定不能是www.example.com/list?page=2这样的格式,对爬虫也不友好,那就需要配置好rewrite规则,我使用的是nginx的配置为:rewrite ^(.*)/indexed/page/([0-9]+)$ $1/indexed?page=$2 last;到现在为止,离成功只有一步之遥了,那就是新建一个页面, 大功告成!
遍历指定文章中相册中的图片,我用的是原生相册 wordpress
global $wpdb;$attached = $wpdb->query( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = %d ", $parent_id ) );var_dump($attached);$parent_id即为你所指定的文章ID
如何创建WordPress自定义查询
<?phpglobal $wpdb;$wpdb->show_errors();/*7 DAY=1周*/$term_ids = $wpdb->get_col("SELECT term_id FROM $wpdb->term_taxonomyINNER JOIN $wpdb->term_relationships ON $wpdb->term_taxonomy.term_taxonomy_id=$wpdb->term_relationships.term_taxonomy_idINNER JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->term_relationships.object_idWHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= $wpdb->posts.post_date");if(count($term_ids) > 0){/*28为数量*/$tags = get_tags(array('orderby' => 'count','order' => 'DESC','number' => 28,'include' => $term_ids,));foreach ( (array) $tags as $tag ) {echo '' . $tag->name . '';}}?>祝愉快,不了解再问!
怎么调用wordpress最新留言
该代码直接调用数据库显示一份最新留言。
其中LIMIT 10限制留言显示数量。
红色部份则是每条留言的输出样式。
global $wpdb;$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID,comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_type,comment_author_url,SUBSTRING(comment_content,1,30) AS com_excerptFROM $wpdb->commentsLEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =$wpdb->posts.ID)WHERE comment_approved = '1′ AND comment_type = ” ANDpost_password = ”ORDER BY comment_date_gmt DESCLIMIT 10〃;$comments = $wpdb->get_results($sql);$output = $pre_html;foreach ($comments as $comment) {$output .= “\n”.strip_tags($comment->comment_author).”:” . ” ”;}$output .= $post_HTML;echo $output;?>
如何在WordPress首页调用某页面的文章内容
在wordpress中,不仅在首页,在其他任何地方调用页面,均可以通过get_page或get_pages这两个内置函数来实现调用一篇或多篇页面内容1、利用get_page获取1个指定的页面内容if ( is_home() ) : //这个判断非必需,这里表示将输出限定在首页$page = get_page( 5 ); // 5为调用页面的IDif( $page ) {//var_dump($page); printf("%s", apply_filters('the_content', $page->post_content) ); //输出页面内容}endif;2、利用get_pages获取页面列表 // 详细的参数可参考/wp-includes/ -> post.php中get_pages函数中的说明// 以下仅仅列出几个作为示例$args = array('sort_column' => 'ID', //指定依id排序'sort_order' => 'ASC', // 指定排序方式为升序'number' => 6 // 指定只获取6篇页面内容);$pages = get_pages($args);//var_dump($wpdb);if(count($pages)) {foreach ($pages as $key => $page) {printf("%s", apply_filters('the_content', $page->post_content) ); //输出页面内容}}总结:页面其实是wordpress文章格式的一种,内置有很多较为直观的函数,主要位置/wp-includes/ -> post.php文件中,建议多看看就好。
如何查看WordPress当前页面执行的所有SQL语句
展开全部 有以下3种方法来实现“免插件仅代码实现WordPress评论回复邮件提醒”,都是把代码加到主题里的functions.php中的最后一个 ?> 即可。
第一种:所有回复都发邮件通知使用前,请确定你的主机是否支持 mail() 函数。
/* comment_mail_notify v1.0 by willin kan. (所有回复都发邮件) */function comment_mail_notify($comment_id) { $comment = get_comment($comment_id); $parent_id = $comment->comment_parent ? $comment->comment_parent : ''; $spam_confirmed = $comment->comment_approved; if (($parent_id != '') && ($spam_confirmed != 'spam')) { $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); //e-mail 发出点, no-reply 可改为可用的 e-mail. $to = trim(get_comment($parent_id)->comment_author_email); $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复'; $message = ' ' . trim(get_comment($parent_id)->comment_author) . ', 您好! 您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:' . trim(get_comment($parent_id)->comment_content) . ' ' . trim($comment->comment_author) . ' 给您的回复:' . trim($comment->comment_content) . ' 您可以点击 查看回复完整内容 欢迎再度光临 ' . get_option('blogname') . ' (此邮件由系统自动发送,请勿回复.) '; $from = "From: "" . get_option('blogname') . "" "; $headers = "$fromnContent-Type: text/html; charset=" . get_option('blog_charset') . "n"; wp_mail( $to, $subject, $message, $headers ); //echo 'mail to ', $to, ' ' , $subject, $message; // for testing }}add_action('comment_post', 'comment_mail_notify');// -- END - 第二种:让访客自己选择是否邮件通知在评论框下方显示一个勾选框,让评论人自己决定是否接收邮件通知。
不过要注意的是,具体的#comment_mail_notify 需要你自己定义css以符合你的主题样式。
function comment_mail_notify($comment_id) { $admin_notify = '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 ) $admin_email = get_bloginfo ('admin_email'); // $admin_email 可改为你指定的 e-mail. $comment = get_comment($comment_id); $comment_author_email = trim($comment->comment_author_email); $parent_id = $comment->comment_parent ? $comment->comment_parent : ''; global $wpdb; if ($wpdb->query("Describe {$wpdb->comments} comment_mail_notify") == '') $wpdb->query("ALTER TABLE {$wpdb->comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;"); if (($comment_author_email != $admin_email && isset($_POST['comment_mail_notify'])) || ($comment_author_email == $admin_email && $admin_notify == '1')) $wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'"); $notify = $parent_id ? get_comment($parent_id)->comment_mail_notify : '0'; $spam_confirmed = $comment->comment_approved; if ($parent_id != '' && $spam_confirmed != 'spam' && $notify == '1') { $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 发出点, no-reply 可改为可用的 e-mail. $to = trim(get_comment($parent_id)->comment_author_email); $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复'; $message = ' ' . trim(get_comment($parent_id)->comment_author) . ', 您好! 您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:' . trim(get_comment($parent_id)->comment_content) . ' ' . trim($comment->comment_author) . ' 给您的回复:' . trim($comment->comment_content) . ' 您可以点击查看回复的完整内容 还要再度光临 ' . get_option('blogname') . ' (此邮件由系统自动发送,请勿回复.) '; $from = "From: "" . get_option('blogname') . "" "; $headers = "$fromnContent-Type: text/html; charset=" . get_option('blog_charset') . "n"; wp_mail( $to, $subject, $message, $headers ); //echo 'mail to ', $to, ' ' , $subject, $message; // for testing }}add_action('comment_post', 'comment_mail_...
转载请注明出处51数据库 » wordpress $wpdb inse
用户27175023