Dig Deeper into WordPress - WD Meetup Cairo
-
Upload
mohamed-mosaad -
Category
Technology
-
view
1.095 -
download
2
description
Transcript of Dig Deeper into WordPress - WD Meetup Cairo
![Page 1: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/1.jpg)
Dig Deeper into WordPress
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
Web Designers Meetup Cairo - 17th November 2012
![Page 2: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/2.jpg)
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
WhyHave you ever thought ?over 70-million websites out
there are using WordPress
![Page 3: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/3.jpg)
![Page 4: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/4.jpg)
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
flexibility
WordPress main feature is
![Page 5: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/5.jpg)
![Page 6: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/6.jpg)
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
Custom Post TypesCustom Meta BoxesCustom TaxonomiesAdvanced QueriesCustom Admin Panels/Options Plugin APIHooks, Actions and FiltersCustomizable Advanced User Capabilities+ many more....
![Page 7: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/7.jpg)
Custom Post Types<?php register_post_type( $post_type,
$args ); ?>
$labels = array( 'name' => _x('Books', 'post type general name', 'your_text_domain'), 'singular_name' => _x('Book', 'post type singular name', 'your_text_domain'), 'add_new' => _x('Add New', 'book', 'your_text_domain'), 'add_new_item' => __('Add New Book', 'your_text_domain'), 'edit_item' => __('Edit Book', 'your_text_domain'), 'new_item' => __('New Book', 'your_text_domain'), 'all_items' => __('All Books', 'your_text_domain'), 'view_item' => __('View Book', 'your_text_domain'), 'search_items' => __('Search Books', 'your_text_domain'), 'not_found' => __('No books found', 'your_text_domain'), 'not_found_in_trash' => __('No books found in Trash', 'your_text_domain'), 'parent_item_colon' => '', 'menu_name' => __('Books', 'your_text_domain')
); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => _x( 'book', 'URL slug', 'your_text_domain' ) ), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ) ); register_post_type('book', $args);
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
http://codex.wordpress.org/Function_Reference/register_post_type
![Page 8: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/8.jpg)
Custom Meta Boxes<?php add_meta_box( $id, $title, $callback,
$post_type, $context, $priority, $callback_args ); ?>
<?php/* Define the custom box */add_action( 'add_meta_boxes', 'myplugin_add_custom_box' );
/* Do something with the data entered */add_action( 'save_post', 'myplugin_save_postdata' );
/* Adds a box to the main column on the Post and Page edit screens */function myplugin_add_custom_box() { add_meta_box( 'myplugin_sectionid', __( 'My Post Section Title', 'myplugin_textdomain' ), 'myplugin_inner_custom_box', 'post' );}
/* Prints the box content */function myplugin_inner_custom_box( $post ) {
// Use nonce for verification wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename' );
// The actual fields for data entry echo '<label for="myplugin_new_field">'; _e("Description for this field", 'myplugin_textdomain' ); echo '</label> '; echo '<input type="text" id="myplugin_new_field" name="myplugin_new_field" value="whatever" size="25" />';}..........
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
http://codex.wordpress.org/Function_Reference/add_meta_box
![Page 9: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/9.jpg)
Custom Meta Boxes (cont.)
/* When the post is saved, saves our custom data */function myplugin_save_postdata( $post_id ) { // verify if this is an auto save routine. // If it is our form has not been submitted, so we dont want to do anything if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( !wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename( __FILE__ ) ) ) return; //if saving in a custom table, get post_ID $post_ID = $_POST['post_ID']; $mydata = $_POST['myplugin_new_field'];
// Do something with $mydata // probably using add_post_meta(), update_post_meta(), or // a custom table (see Further Reading section below)}?>
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
![Page 10: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/10.jpg)
Custom Taxonomies<?php register_taxonomy($taxonomy,
$object_type, $args); ?>
// Add new taxonomy, make it hierarchical (like categories) $labels = array( 'name' => _x( 'Genres', 'taxonomy general name' ), 'singular_name' => _x( 'Genre', 'taxonomy singular name' ), 'search_items' => __( 'Search Genres' ), 'all_items' => __( 'All Genres' ), 'parent_item' => __( 'Parent Genre' ), 'parent_item_colon' => __( 'Parent Genre:' ), 'edit_item' => __( 'Edit Genre' ), 'update_item' => __( 'Update Genre' ), 'add_new_item' => __( 'Add New Genre' ), 'new_item_name' => __( 'New Genre Name' ), 'menu_name' => __( 'Genre' ), );
register_taxonomy('genre',array('book'), array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'genre' ), ));
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
http://codex.wordpress.org/Taxonomies
![Page 11: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/11.jpg)
Custom Taxonomies<?php register_taxonomy($taxonomy,
$object_type, $args); ?>
// Add new taxonomy, NOT hierarchical (like tags) $labels = array( 'name' => _x( 'Writers', 'taxonomy general name' ), 'singular_name' => _x( 'Writer', 'taxonomy singular name' ), 'search_items' => __( 'Search Writers' ), 'popular_items' => __( 'Popular Writers' ), 'all_items' => __( 'All Writers' ), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __( 'Edit Writer' ), 'update_item' => __( 'Update Writer' ), 'add_new_item' => __( 'Add New Writer' ), 'new_item_name' => __( 'New Writer Name' ), 'separate_items_with_commas' => __( 'Separate writers with commas' ), 'add_or_remove_items' => __( 'Add or remove writers' ), 'choose_from_most_used' => __( 'Choose from the most used writers' ), 'menu_name' => __( 'Writers' ), );
register_taxonomy('writer','book',array( 'hierarchical' => false, 'labels' => $labels, 'show_ui' => true, 'update_count_callback' => '_update_post_term_count', 'query_var' => true, 'rewrite' => array( 'slug' => 'writer' ), ));
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
http://codex.wordpress.org/Taxonomies
![Page 12: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/12.jpg)
Advanced Queries <?php $the_query = new WP_Query( $args ); ?>
<?php$args= array( . .);$query= new WP_Query($args);
// Loopwhile($query-‐>have_posts()): $query-‐>next_post(); $id = $query-‐>post-‐>ID; echo '<li>'; echo get_the_title($id); echo '</li>';endwhile;?>
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
WP_Query is a class defined in wp-includes/query.php that deals with the intricacies of a posts (or pages) request to a WordPress blog. The wp-blog-header.php (or the WP class in Version 2.0) gives the $wp_query object information defining the current request, and then $wp_query determines what type of query it's dealing with (possibly a category archive, dated archive, feed, or search), and fetches the requested posts. It retains a lot of information on the request, which can be pulled at a later date.
http://codex.wordpress.org/Class_Reference/WP_Query
![Page 13: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/13.jpg)
Advanced Queries (cont.)<?php $the_query = new WP_Query( $args ); ?>
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
Class Methods- init()- parse_query( $query )- parse_query_vars()- get( $query_var )- set( $query_var, $value ) - &get_posts() - next_post() - the_post() - rewind_posts() - &query( $query ) - get_queried_object() - get_queried_object_id() - WP_Query( $query = '' ) (constructor)
Parameters
http://codex.wordpress.org/Class_Reference/WP_Query
![Page 14: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/14.jpg)
Advanced Queries (cont.)<?php $wpdb->get_results( MYSQLQuery ); ?>
$wpdb-‐>query( $wpdb-‐>prepare( " DELETE FROM $wpdb-‐>postmeta WHERE post_id = %d AND meta_key = %s ", 13, 'gargle' ));
or
$wpdb-‐>query( " UPDATE $wpdb-‐>posts SET post_parent = 7 WHERE ID = 15 AND post_status = 'static' ");
(C) 2012 Mohamed Mosaad. All Copyrights Reserved
The $wpdb object can be used to read data from any table in the WordPress database, not just the standard tables that WordPress creates.
http://codex.wordpress.org/Class_Reference/wpdb
![Page 15: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/15.jpg)
wpmonkeys.com
fb.com/banhawi
be.net/banhawi
eg.linkedin.com/in/banhawi
twitter.com/banhawi
www. .com
Scan My vCard
▼▼ http://bit.ly/Xh5EiB
![Page 16: Dig Deeper into WordPress - WD Meetup Cairo](https://reader034.fdocuments.us/reader034/viewer/2022042518/54c43a894a79596d118b45b2/html5/thumbnails/16.jpg)
Thank YouMohamed MosaadUX Evangelist & WordPress Expertwpmonkeys.com§