修改默认文章每页显示新闻数目(加入到functions.php中)

$option_posts_per_page = get_option( 'posts_per_page' );
add_action( 'init', 'my_modify_posts_per_page', 0);
function my_modify_posts_per_page() {   
  add_filter( 'option_posts_per_page', 'my_option_posts_per_page' );
}
function my_option_posts_per_page( $value ) {    
  global $option_posts_per_page;   
  if ( is_tax( 'portfolio-category') ) {      
     return 2;    } else {      
   return $option_posts_per_page;   
 }}

在后台列表页面添加新的栏目

这里主要是改变WP_List_Table,但由于Wordpress提供有现成的Filter API,故直接利用Filter即可,如果想通过WP_List_Table去改变,参见:http://wpengineer.com/2426/wp_list_table-a-step-by-step-guide/

 

主要用到的Filter有:

     (1) manage_posts_columns这个主要是用在文章列表页的栏目管理,包括除pages外的所有类型post的列表页面。管理pages的要用mange_pages_columns

    (2) manage_${post_type}_posts_columns相对于上一个就更细致一些,它主要用来修改指定自定义类型的列表页栏目的管理,这个通常结合manage_posts_custom_column(用于设置自定义栏目的值)。管理pages的自定义栏目的值要用manage_pages_custom_column

//管理后台列表页面的栏目

function jl_add_location_columns($columns) {
   unset($columns['comments']);
   return array_merge($columns,
             array('shop_location' => '位置'));
}
add_filter('manage_post_posts_columns' , 'jl_add_location_columns');
 
 
add_action( 'manage_posts_custom_column' , 'jl_custom_columns', 10, 2 );
 
function jl_custom_columns( $column, $post_id ) {
   switch ( $column ) {
 
       case 'shop_location' :
           echo get_post_meta( $post_id , 'shop_location' , true );
           break;
   }
}


  

现在wordpress中直接可以上传tudouyouku56com的视频网址到文章内容里面,然后就可以直接播放了。

 

 

 

这一次讲wordpresscontact form 7插件的设置,这个插件对于一些招商×××,联系我们等页面

特别方便好用,其设置也很简单,但要知道几点

1)每个input要按照里面的设置去生成标签,

2)下面的邮箱要填写,否这会出现你的留言发送失败。请稍后再尝试发送或者使用其他方法联系

管理员。的错误

3)在额外的设置中可以贴一些操作,如:on_sent_ok: "location='留言成功后要跳转的页面';"

,这个可以避免重复提交,提交成功后页面就会跳转到你设置的页面。

 

另外可以集成里面自带的form效果,此时只需要在页面中加载style.cssjquery.form.min.js

script.js即可。

 

 

关于Easy WP SMTP的设置:

 

设置126邮箱

 

如下图

 wKioL1PV9UOClvQMAAHOC7zkxlA519.jpg

 

三、下面说下wordpress中怎么实现简单的购物车功能

Wordpress提供多用户功能,而且里面还提供了五中角色,分别是administratoreditorauthorsubscribercontributer

对于购物车,一般用户只需要看到他提交的信息就好,并不需要去修改,所以这里选择将用户都

设置为subscriber,只能在后台查看到文章,之所以不选择author角色是因为这个角色会使得客户具有编辑文章的功能,这是不合适的。这还不够,因为其他板块的内容也能让客户看到,所以要其他版块的内容通过下图中代码去掉:

//设置编辑角色显示的自定义分类
function get_user_role() {
    global $current_user;
    $user_roles = $current_user->roles;
    $user_role = array_shift($user_roles);
    return $user_role;
}
 
if (( is_user_logged_in()) && (get_user_role()=='contributor')) {
    function removeMenu(){
        global $menu;    //    ****************** Find the numbers corresponding to the menu items to remove in   wp-admin/menu.php **********
        unset($menu[5]); // remove post menu
        unset($menu[6]);
        unset($menu[7]);
        unset($menu[8]);
        unset($menu[9]);
        unset($menu[10]);
        unset($menu[11]);
        unset($menu[12]);
        unset($menu[13]);
        unset($menu[14]);
        unset($menu[16]);
        unset($menu[17]);
        unset($menu[20]);
        unset($menu[25]); // remove comments menu
        unset($menu[26]);
        unset($menu[75]); // remove tools menu
    }
    add_action( 'admin_head' , 'removeMenu');
    function menu_redirect() {
        // Redirect links. Thanks to   Vladimir Garagulya at  http://www.shinephp.com/how-to-block-wordpress-admin-menu-item/
        // Although menu items have been removed a user could still paste in the url for that menu item and go to that page. This redirects such urls back to the dashboard.
        // Before removing the menu items click on each one and copy the relevant urls. Take the last bit of each url and paste into either   $linksToAllow = array
        // or $linksToBlock = array    (below)
        // Again, before removing the menu items, check that the above code works when you click on each menu item.
        // edit.php    is not redirected for some reason.
        // If the user pastes    edit.php     onto the end of /wp-admin/ they can see a list of all the posts that have been published.
        // However, they can't do anything with that list of posts. And trying to add a new post redirects them back to the dashboard.
        // It's not ideal. Redirecting edit.php back to the dashboard would be better.
 
        $result = false;
        $linksToAllow = array('edit.php?post_type=review', 'post-new.php?post_type=review');          // Links to allow
        foreach ($linksToAllow as $key=>$value) {
            $result = stripos($_SERVER['REQUEST_URI'], $value);
            if ($result!==false) {
                $result = 'blah';
                break;
            }
        }
 
        if ($result!=='blah') {
            $linksToBlock = array('edit.php', 'post-new.php', 'tools.php', 'profile.php', 'edit-comments.php');         // Links to block (i.e. to redirect back to wp-admin/index.php)
            foreach ($linksToBlock as $key=>$value) {
                $result = stripos($_SERVER['REQUEST_URI'], $value);
                if ($result!==false) {
                    $result = 'something';
                    break;
                }
            }
        }
 
        if ($result=='something') {
            wp_redirect(get_option('siteurl') . '/wp-admin/index.php');
        }
 
    }
 
    add_action('admin_menu', 'menu_redirect');
}


设置了这个之后,就可以让客户在后台只看到特定内容了。

 

 

四、修复wordpresslot主题的p_w_picpath插件的图片路径问题

//同步自定义repeater p_w_picpathbox图片路径
function manipulate_cfi_row($fields) {
 // whatever you want to do here:
 foreach($fields as &$field){
    $field['goods_slide_p_w_picpaths']['src'] = str_replace('test4.wlst.cn', 'www.jinlinghomedeco.com', $field['goods_slide_p_w_picpaths']['src']);
 }
 
 return $fields;
}
 
function manipulate_cfi_data() {
 global $wpdb;
 
 $data = $wpdb->get_results("SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = 'goods_rep_'");
 
 
 
 foreach ( $data as $row ) {
   $old_str = str_replace('www.jinlinghomedeco.com', 'test4.wlst.cn', $row->meta_value);
   if(unserialize($old_str) === FALSE){
       continue;
   }
 
   $new_data = manipulate_cfi_row(unserialize($old_str));
   update_post_meta($row->post_id, 'goods_rep_', $new_data);
 }
}
 
 
 
 
 
//同步自定义分类meta图片路径
function manipulate_cfi_row($fields) {
 // whatever you want to do here:
    $fields['cat_p_w_picpath']['src'] = str_replace('test4.wlst.cn', 'www.jinlinghomedeco.com', $fields['cat_p_w_picpath']['src']);
 
 return $fields;
}
 
function manipulate_cfi_data() {
 global $wpdb;
    $categories = get_categories(array(
                    'child_of' => 2,
                    'hide_empty' => 0,
                    'orderby' => 'id'
                ));
    foreach($categories as $category){
 $data = $wpdb->get_results("SELECT option_id, option_value FROM $wpdb->options WHERE option_name = 'tax_meta_".$category->cat_ID."'");
 
 
 foreach ( $data as $row ) {
   $old_str = str_replace('www.jinlinghomedeco.com', 'test4.wlst.cn', $row->option_value);
   if(unserialize($old_str) === FALSE){
       continue;
   }
 
   $new_data = manipulate_cfi_row(unserialize($old_str));
   update_tax_meta($category->cat_ID, 'cat_p_w_picpath', $new_data['cat_p_w_picpath']);
 }
}
}