WordPress教程

模板兔提供专业的wordpress建站教程、wordpress主题开发教程、wordpress插件开发教程、wordpress二次开发教程等。

WordPress教程:在多人共用一个帐号的情况下,有这样一种需求,我不需要知道WordPress的用户名和密码,就能自动登录到公共帐号。这样的需要该如何实现呢? 方法一:wp_signon() 在主题中使用WordPress内置函数 wp_signon() ,可将用户名和密码直接放到代码中,无需再去要求用户输入,快捷登录,省时省力: if (!is_user_logged_in()) { $creds = array(); $creds['user_login'] = 'mobantu'; // 用户名是mobantu,自行修改 $creds['user_password'] = 'mobantu'; // 密码是mobantu $creds['remember'] = true;   $user = wp_signon( $creds, false );   if ( is_wp_error($user) )     echo $user->get_error_message(); } 将以上代码应用到你的Wo...

WordPress教程:最近给客户加了个论坛功能,需要帖子顶置功能,可是又不想某版块下的顶置贴显示在论坛首页,所以得在首页排除掉某版块的顶置贴,大致代码如下: $sticky = get_option('sticky_posts'); rsort( $sticky ); $sticky_args = array('post__in' => $sticky, 'caller_get_posts' => 1, 'showposts' => 10, 'post_type' => 'thread', 'tax_query' => array( array( 'taxonomy' => 'forum', 'terms' => array('145','146','147','148','149','150'), 'field' => 'id', 'operator' => 'NOT IN' ) ) ); $sticky_arms = array_merge($sticky_args, $wp_query->query); query_posts($sticky_arms...

WordPress教程:有时候是不会注意到有日志需要审核的,所以最好的办法就是在 WordPress 后台的首页(就是仪表盘)直接显示待审日志列表。 add_action('wp_dashboard_setup', 'MBT_thread_modify_dashboard_widgets' ); function MBT_thread_modify_dashboard_widgets() { global $wp_meta_boxes; if(current_user_can('manage_options')){ //只有管理员才能看到 add_meta_box( 'pending_posts_dashboard_widget', '待审文章', 'pending_posts_dashboard_widget_function','dashboard', 'normal', 'core' ); } } function pending_posts_dashboard_widget_function() { global $wpdb; $pending_posts = $wpdb->get_results("SELECT * FROM {...

WordPress教程:有时候我们需要网站前端让用户上传图片,可是wordpress默认的只有编辑权限才能在前端上传,但是一般默认的用户权限是订阅者或者投稿者,所以得改改他们的权限,代码如下: function MBT_enable_file_uploads_by_role( ) { $role = 'subscriber';//这是角色 if(!current_user_can($role) || current_user_can('upload_files')) return; $contributor = get_role( $role ); $contributor->add_cap('upload_files'); } add_action('admin_init', 'MBT_enable_file_uploads_by_role');

WordPress教程:有时候我们遇到文章多字段多重排序,或者说一个字段排序同时又得判断是否含有另一个字段或另一个字段值等于某个值,看以下代码: <?php //多个字段多重排序 $args = array( 'post_type' => 'words', 'meta_query' => array( array( 'key' => 'word_count', 'orderby' => 'meta_value_num', 'order' => DESC , ), array( 'key' => 'title', 'orderby' => 'meta_value', 'order' => DESC ), arr...

WordPress教程:$post = array( 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => 2, 'post_content' => $_POST['synopsis'], 'post_name' => sanitize_title($_POST['title']), 'post_status' => 'private', 'post_title' => $_POST['title'], 'post_type' => 'film', 'tax_input' => array( 'film_category' => array( $_POST['category'] ) ) ); $new_film_id = wp_insert_p...

WordPress教程:js代码例如: <script> jQuery(document).ready(function(){ jQuery("#viptable .quxiaovip").click(function(){ jQuery.ajax({ url: '<?php echo admin_url( 'admin-ajax.php' );?>', type: "POST", data: { action:"quxiaovip", id:jQuery(this).data("id"), }, success: function(data) { alert(data); location.reload(true); } }); }); }); </script> php代码例如: function quxiaovip_callback(){ // do something echo 'mobantu'; } add_action( 'wp_ajax_quxiaovip', 'quxiaovip_callback'); 注意以上quxiaovip字符串需要一致!

WordPress教程:wordpress在默认情况下可以使用文章的一个自定义字段进行排序,代码如下: $args = array( 'meta_key' => 'sort', 'orderby' => 'meta_value_num', // 须 WordPress 2.8 及以上版本 'order' => DESC ); $arms = array_merge($args, $wp_query->query); query_posts($arms); while (have_posts()) //循环内容 endwhile;wp_reset_query(); 但是有时候我们可能会碰到更加复杂的情况,需要对两个自定义字段进行组合排序,方法如下: $query = "SELECT wposts.*, wpostmeta1.*, wpostmeta2.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta1, $wpdb->postmeta wpostmeta2 WHERE wposts....

WordPress教程:if( !class_exists('CustomPostTypeArchiveInNavMenu') ) { class CustomPostTypeArchiveInNavMenu { function CustomPostTypeArchiveInNavMenu() { add_action( 'admin_head-nav-menus.php', array( &$this, 'cpt_navmenu_metabox' ) ); add_filter( 'wp_get_nav_menu_items', array( &$this,'cpt_archive_menu_filter'), 10, 3 ); } function cpt_navmenu_metabox() { add_meta_box( 'add-cpt', __('自定义文章类型存档'), array( &$this, 'cpt_navmenu_metabox_content' ), 'nav-menus', 'side', 'default' ); } function cpt_navmenu_metabox_content() { $post_types = get_post_types( array( 'show_in...

WordPress教程:有时候,我们需要通过分类的序号来排序分类列表,wordpress的分类有个term_order属性,默认为0。 <?php function mbt_add_category_field(){ echo '<div class="form-field"> <label for="cat-num">序号</label> <input name="_term_order" id="cat-num" type="text" value="" size="40"> <p>专题列表排序,数字越好,越靠前</p> </div>'; } add_action('category_add_form_fields','mbt_add_category_field',10,2); // 分类编辑字段 function mbt_edit_category_field($tag){ echo '<tr class="form-field"> <th scope="row"><label for="c...

WordPress教程:有时候,我们需要显示指定文章ID数组的文章列表,那么看看下面代码,可能会帮助到你: 方法一: <?php $ids = array(548,555,587,583,585); $my_query = query_posts(array('post__in' => $ids,'post_type'=> 'parks')); global $post; foreach ($my_query as $post) { $posts_by_id[$post->ID] = $post; } foreach ($ids as $id) { if (!$post = $posts_by_id[$id]) continue; setup_postdata($post); echo '<p>TITLE: ';the_title();echo ' - ';the_ID(); '</p>'; the_content(); } ?> 方法二:(如果需要分页) <?php global $wp_query; $args = array_merge( $wp_query->q...

WordPress教程:/* 评论作者和谐,使昵称部分隐藏,例如:ad**n 。*/ function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') { if($code == 'UTF-8') { $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/"; preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen)); return join('', array_slice($t_string[0], $start, $sublen)); } else { $start = $start*2; $sublen ...

WordPress教程:有时候我们需要在列表里显示某个自定义字段不为空的文章,比如用woocommerce插件时,只显示on sale的产品,那么代码如下: $args = array( 'post_type' => 'product', 'meta_query' => array( array( 'key' => '_sale_price', //自定义字段 'value'=> '', 'compare' => '!=' ) ) ); //另一种形式 array( 'prdctfltr' => 'active', 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => $prdctfltr_global['posts_per_page'], 'meta_query' => array( array( 'key' => '_visibility', 'value' => array('catalog', 'visible'), 'compare...

WordPress教程:WordPress中创建一个公用帐号,密码公开,任何人都可以使用。但是又不想让使用这个帐号的人修改帐号的密码等个人资料信息,那怎么办呢? 既然如此,因为这个帐号是唯一的,所以问题也很好解决,禁止该用户浏览后台的个人资料页面即可。我们在当前主题的functions.php中添加以下代码: function mobantu_disable_user_profile() {   if ( is_admin() ) {     $user = wp_get_current_user();     if ( 2 == $user->ID )  // 2 改成该用户的id       wp_die( '禁止访问' );   } } add_action( 'load-profile.php', 'mobantu_disable_user_profile' ); 当然,如果你使用前台的用户管理功能,以上方法就失效了。

WordPress教程:我在WordPress后台某篇文章的编辑页面,给这篇文章选择了分类:WordPress,接着同时选择了标签:php、主题制作,这时分类(WordPress)就与标签(php、主题制作)建立了关联,利用这种关联我们实现很多种需求,最典型的是细化WordPress文章分类功能,在子分类无法达到我们的需求时,可以使用标签来细化。我只需要提供WordPress分类的id,就可以得到它关联的标签:php、主题制作。 调用函数 我们可以先在主题目录的下的functions.php添加以下函数: function mobantu_get_category_tags($args) {     global $wpdb;     $tags = $wpdb->get_results     ("         SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_na...