0
Advanced Wordpress           QueriesJean Carlo Nascimento aka SUISSA   NodewareLíder Técnico                      http://w...
Sobre o autorDesenvolvedor Web há 8 anosFormado pela UTF-PR em SIEspecialista em Desenvolvimento WebCriador do Sampa.js e ...
VantagensPor exemplo, a API do WordPress facilita a consulta para onúmero de comentários por post, mas o que acontece sevo...
Tabelaswp_comments: dados dos Comentárioswp_commentmeta: meta data de cada Comentáriowp_links: dados do Linkswp_options: t...
Table: wp_commentmeta                                                                                               Campos...
Classe WpdbProve uma interface de acesso ao banco de dadosvagamente baseado na classe ezSQL.
Classe Wpdb - API   get_row    query    get_col   insert   get_var    updateget_results   prepare              insert_id  ...
Classe Wpdb - get_row<?php $posts = $wpdb->get_row("SELECT ID, post_title FROM wp_posts WHEREpost_status = publish AND pos...
Classe Wpdb - get_col<?php  $posts = $wpdb->get_col("SELECT ID FROM wp_posts WHERE post_status= publish  AND post_type=pos...
Classe Wpdb - get_var<?php  $email = $wpdb->get_var("SELECT user_email FROM wp_users WHEREuser_login = manolo ") // email ...
Classe Wpdb - get_results<?php $posts = $wpdb->get_results("SELECT ID, post_title FROM wp_postsWHERE post_status = future ...
Classe Wpdb - query<?php  $wpdb->update( $wpdb->posts, array("post_title" => "Manhê modifiquei"),array("ID" => 5), array("...
Classe Wpdb - insert<?php/*$wpdb->insert( $table, $data, $format);*/   $wpdb->insert($wpdb->usermeta, array("user_id" => 1...
Classe Wpdb - update<?php/*$wpdb->update( $table, $data, $where, $format = null,$where_format = null );*/  $wpdb->update( ...
E a segurança disso tudo?
Classe Wpdb - prepare<?php $sql = $wpdb->prepare( "INSERT INTO $wpdb->postmeta (post_id,meta_key, meta_value ) VALUES ( %d...
Classe Wpdb - insert_id<?php $sql = $wpdb->prepare( "INSERT INTO $wpdb->postmeta (post_id,meta_key, meta_value ) VALUES ( ...
7 masters   wordpress - advanced queries
7 masters   wordpress - advanced queries
7 masters   wordpress - advanced queries
7 masters   wordpress - advanced queries
7 masters   wordpress - advanced queries
7 masters   wordpress - advanced queries
7 masters   wordpress - advanced queries
7 masters   wordpress - advanced queries
7 masters   wordpress - advanced queries
Upcoming SlideShare
Loading in...5
×

7 masters wordpress - advanced queries

1,793

Published on

Published in: Technology, Business
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,793
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
30
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "7 masters wordpress - advanced queries"

  1. 1. Advanced Wordpress QueriesJean Carlo Nascimento aka SUISSA NodewareLíder Técnico http://www.nodeware.com.brEmail: suissa@nodeware.com.br Twitter:@nodewareTwitter: @osuissahttp://about.me/suissa
  2. 2. Sobre o autorDesenvolvedor Web há 8 anosFormado pela UTF-PR em SIEspecialista em Desenvolvimento WebCriador do Sampa.js e FrontinSampaEvangelista Node.js e NoSQLnosqlbr.com.brjavascriptbrasil.comjquerybrasil.org
  3. 3. VantagensPor exemplo, a API do WordPress facilita a consulta para onúmero de comentários por post, mas o que acontece sevocê quiser puxar para trás o número de comentários paracada usuário por mensagem (ou por página) e ordená-lospor data ou pelo número de vezes que eles comentaram?Obviamente, você precisa escrever uma consultaavançada.
  4. 4. Tabelaswp_comments: dados dos Comentárioswp_commentmeta: meta data de cada Comentáriowp_links: dados do Linkswp_options: todas as opções de Administration > Settingswp_posts: dados dos Posts e Páginaswp_postmeta: meta data de cada Postwp_terms: dados das Categorias e Tags de Posts e Páginaswp_term_relationships: dados dos relacionamentos entre Posts, categories,and tagswp_term_taxonomy: descrições das Tags, Links e/ou Categorias gravadas emwp_termswp_users: dados dos Usuárioswp_usermeta: meta data de cada usuário
  5. 5. Table: wp_commentmeta Campos Keyname Type Cardinality FieldField Type Null Key Default Extra PRIMARY PRIMARY 7 link_IDmeta_id bigint(20) unsigned PRI NULL auto_increment link_category INDEX None link_categorycomment_id bigint(20) unsigned IND 0 FK->wp_comments.comment_id link_visible INDEX None link_visiblemeta_key varchar(255) YES IND NULL Table: wp_optionsmeta_value longtext YES NULL Field Type Null Key Default ExtraIndexes option_id bigint(20) unsigned PRI Pt1 NULL auto_increment option_name varchar(64) PRI Pt3 & INDKeyname Type Cardinality Field option_value longtextPRIMARY PRIMARY 0 meta_ID autoload varchar(20) yescomment_id INDEX none comment_id Indexesmeta_key INDEX none meta_keyTable: wp_comments Keyname Type Cardinality FieldField Type Null Key Default Extra PRIMARY PRIMARY 184 option_idcomment_ID bigint(20) unsigned PRI NULL auto_increment blog_idcomment_post_ID bigint(20) unsigned IND 0 FK->wp_posts.ID option_namecomment_author tinytext option_name UNIQUE 184 option_namecomment_author_email varchar(100) Table: wp_postmetacomment_author_url varchar(200) Field Type Null Key Default Extracomment_author_IP varchar(100) meta_id bigint(20) unsigned PRI NULL auto_incrementcomment_date datetime 0000-00-00 00:00:00 post_id bigint(20) unsigned IND 0 FK->wp_posts.IDcomment_date_gmt datetime IND & IND Pt2 0000-00-00 00:00:00 meta_key varchar(255) YES IND NULLcomment_content text meta_value longtext YES NULLcomment_karma int(11) 0 Indexescomment_approved varchar(20) IND & Ind Pt1 1comment_agent varchar(255) Keyname Type Cardinality Fieldcomment_type varchar(20) PRIMARY PRIMARY 13 meta_IDcomment_parent bigint(20) unsigned 0 FK->wp_comments.ID post_id INDEX 15 post_iduser_id bigint(20) unsigned 0 FK->wp_users.ID meta_key INDEX 7 meta_keyIndexes Table: wp_posts Field Type Null Key Default ExtraKeyname Type Cardinality Field ID bigint(20) unsigned PRI & IND Pt4 auto_incrementPRIMARY PRIMARY 1 comment_ID post_author bigint(20) unsigned 0 FK->wp_users.IDcomment_post_ID INDEX None comment_post_ID post_date datetime IND Pt3 0000-00-00 00:00:00comment_approved_date_gmt INDEX None comment_approved post_date_gmt datetime 0000-00-00 00:00:00comment_date_gmt post_content longtextcomment_date_gmt INDEX None comment_date_gmt post_title textcomment_parent INDEX None comment_parent post_excerpt textTable: wp_links post_status varchar(20) IND PT2 publishField Type Null Key Default Extra comment_status varchar(20) openlink_id bigint(20) unsigned PRI NULL auto_increment ping_status varchar(20) openlink_url varchar(255) post_password varchar(20)link_name varchar(255) post_name varchar(200) INDlink_image varchar(255) to_ping textlink_target varchar(25) pinged textlink_description varchar(255) post_modified datetime 0000-00-00 00:00:00link_visible varchar(20) IND Y post_modified_gmt datetime 0000-00-00 00:00:00link_owner bigint(20) unsigned 1 post_content_filtered longtextlink_rating int(11) 0 post_parent bigint(20) unsigned 0 FK->wp_posts.IDlink_updated datetime 0000-00-00 00:00:00 guid varchar(255)link_rel varchar(255) menu_order int(11) 0link_notes mediumtext post_type varchar(20) IND Pt1 postlink_rss varchar(255) post_mime_type varchar(100)Indexes comment_count bigint(20) 0 Indexes
  6. 6. Classe WpdbProve uma interface de acesso ao banco de dadosvagamente baseado na classe ezSQL.
  7. 7. Classe Wpdb - API get_row query get_col insert get_var updateget_results prepare insert_id show_errors
  8. 8. Classe Wpdb - get_row<?php $posts = $wpdb->get_row("SELECT ID, post_title FROM wp_posts WHEREpost_status = publish AND post_type=post ORDER BY comment_count DESC LIMIT 0,1") // Título do post mais comentado echo $posts->post_title;?>
  9. 9. Classe Wpdb - get_col<?php $posts = $wpdb->get_col("SELECT ID FROM wp_posts WHERE post_status= publish AND post_type=post ORDER BY comment_count DESC LIMIT 0,10") // Quarto comentário mais comentado echo $posts[3]->ID;?>
  10. 10. Classe Wpdb - get_var<?php $email = $wpdb->get_var("SELECT user_email FROM wp_users WHEREuser_login = manolo ") // email do manolo echo $email;?>
  11. 11. Classe Wpdb - get_results<?php $posts = $wpdb->get_results("SELECT ID, post_title FROM wp_postsWHERE post_status = future AND post_type=post ORDER BY post_date ASC LIMIT 0,4") // Título do primeiro post agendado echo $posts[0]->post_title;?>
  12. 12. Classe Wpdb - query<?php $wpdb->update( $wpdb->posts, array("post_title" => "Manhê modifiquei"),array("ID" => 5), array("%s"), array("%d") );/*$wpdb->update( $table, $data, $where, $format = null, $where_format = null );*/?>
  13. 13. Classe Wpdb - insert<?php/*$wpdb->insert( $table, $data, $format);*/ $wpdb->insert($wpdb->usermeta, array("user_id" => 1, "meta_key" =>"bazinga", "meta_value" => 10), array("%d", %s", "%d")); // INSERT INTO wp_usermeta (user_id, meta_key, meta_value) VALUES (1,"bazinga", 10);?>
  14. 14. Classe Wpdb - update<?php/*$wpdb->update( $table, $data, $where, $format = null,$where_format = null );*/ $wpdb->update( $wpdb->posts, array("post_title" =>"Manhê modifiquei"), array("ID" => 5), array("%s"), array("%d") );?>
  15. 15. E a segurança disso tudo?
  16. 16. Classe Wpdb - prepare<?php $sql = $wpdb->prepare( "INSERT INTO $wpdb->postmeta (post_id,meta_key, meta_value ) VALUES ( %d, %s, %d )", 3342, post_views, 2290 ); $wpdb->query($sql);/*$sql = $wpdb->prepare( query [, value_parameter, value_parameter ... ] );*/?>
  17. 17. Classe Wpdb - insert_id<?php $sql = $wpdb->prepare( "INSERT INTO $wpdb->postmeta (post_id,meta_key, meta_value ) VALUES ( %d, %s, %d )", 3342, post_views, 2290 ); $wpdb->query($sql); $meta_id = $wpdb->insert_id;/*$sql = $wpdb->prepare( query [, value_parameter, value_parameter ... ] );*/?>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×