WordPress教程

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

WordPress教程:在WordPress后台文章列表中实现“快速编辑”时设置某个文章字段的功能,需结合自定义字段、快速编辑钩子及JavaScript动态处理。以下是具体实现步骤及代码示例: 1. 启用自定义字段并注册元数据 首先确保目标字段已作为自定义字段存在,并注册到文章元数据中(通常存储在 wp_postmeta 表)。例如,字段名为 product_rating(产品评分): // 在主题的functions.php中添加以下代码 function register_custom_meta_boxes() { add_meta_box( 'product_rating_meta_box', '产品评分', 'render_product_rating_meta_box', 'post', // 或指定其他文章类型,如 'product' 'normal', 'high' ); } add_action('add_meta_boxes', 'register_c...

WordPress教程:由于woocommerce的登录页面比较简单,如果我们主题本身有登录页面,那么如何让用户自动跳到自定义登录页面呢? add_action( 'template_redirect', 'redirect_unlogged_users_to_custom_login' ); function redirect_unlogged_users_to_custom_login() { if (function_exists('is_account_page') && is_account_page() && !is_user_logged_in()) { wp_redirect(get_permalink(MBThemes_page("template/login.php"))); exit; } } add_filter( 'woocommerce_login_url', 'custom_woocommerce_login_url' ); function custom_woocommerce_login_url() { return get_permalink(MBThemes_page("template/login.php"))...

WordPress教程:最近有个客户找模板兔二次开发主题,需求是希望在搜索页面把标题包含指定关键词(不是用户搜索词)的文章排在前面。 下面模板兔给出相应代码: function erphp_custom_search_order($clauses, $query) { global $wpdb; if (!is_admin() && $query->is_search) { $search_title_first_keyword = _MBT('search_title_first_keyword'); $clauses['orderby'] = " CASE WHEN {$wpdb->posts}.post_title LIKE '%{$search_title_first_keyword}%' THEN 0 ELSE 1 END ASC, {$wpdb->posts}.post_date DESC "; } return $clauses; } add_filter('posts_clauses', 'erphp_custom_search_order', 10, 2); 其中...

WordPress教程:在 WordPress 中,wp_die() 函数通常用于在处理错误或异常情况时终止脚本执行,并显示一个错误消息。默认情况下,wp_die() 输出的错误消息样式比较简单,但你可以通过一些自定义操作来修改这些样式。 使用 add_action 和 wp_die_handler 钩子 从 WordPress 5.2 开始,你可以使用 wp_die_handler 钩子来自定义 wp_die() 的行为。这个钩子允许你完全控制 wp_die() 的输出。 function custom_wp_die_handler( $message, $title = '', $args = array() ) { // 自定义的 HTML 和 CSS 样式 $custom_html = ' <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" conte...

WordPress教程:在WordPress中,我们在获取文章SEO的description时,如果文章开头有短代码,那么可能会带上短代码的内容,这样很不友好。那么你希望过滤掉短代码,可以使用一些内置函数和自定义代码来实现。以下是一个方法,你可以通过添加自定义函数到你的主题的 functions.php 文件来实现这个功能。 步骤 1: 创建一个自定义函数来移除短代码 首先,创建一个自定义函数来移除短代码。你可以使用 strip_shortcodes 函数,这个函数会移除内容中的短代码,但不会移除短代码生成的HTML(如果有的话)。 function remove_shortcodes_from_content($content) { return strip_shortcodes($content); } 步骤 2: 修改获取摘要的函数 WordPress 有一个内置函数 ...

WordPress教程:在 WordPress 中,防止机器请求(如 CSRF 攻击)的常见方法是使用 Nonce(一次性令牌)。Nonce 是 WordPress 提供的一种安全机制,用于验证请求的来源和合法性。 以下是如何在 WordPress 中使用 Nonce 进行安全请求验证的 PHP 代码示例: 1. 生成 Nonce 并添加到表单中 在表单中添加 Nonce 字段,确保每个表单提交都包含一个唯一的 Nonce。 <form method="post" action=""> <?php wp_nonce_field('my_action_name', 'my_nonce_field'); ?> <input type="text" name="my_field" value=""> <input type="submit" value="Submit"> </form> 2. 验证 Nonce 在处理表单提交的 PHP 代码中,验证 Nonce ...

WordPress教程:大家都知道,我们在后台发布文章后再次编辑时,所选的分类会显示在分类目录列表的顶部,这样不方便我们查看其树状结构(也就是分类层级关系),那么如何能不让所选分类显示在顶部呢,还是像默认那样呈现树状层级关系。 可以使用以下代码: class Category_Checklist { static function init() { add_filter( 'wp_terms_checklist_args', array( __CLASS__, 'checklist_args' ) ); } static function checklist_args( $args ) { add_action( 'admin_footer', array( __CLASS__, 'script' ) ); $args['checked_ontop'] = false; return $args; } // Scrolls to first checked category static function s...

WordPress教程:在后台发布文章时,如果我们想它默认就选中了某个分类,方法有很多,比如通过js来执行,或者通过GET方式传值来默认选中,下面模板兔提供下如何通过GET传值方式来默认选分类。例如:wp-admin/post-new.php?cat=news add_action( 'new_to_auto-draft', function( $post ) { // Bail out, if not in admin editor. if ( ! strpos( $_SERVER['REQUEST_URI'], 'wp-admin/post-new.php' ) ) { return; } // Bail out, it no category set in $_GET. if ( empty( $_GET['cat'] ) ) { return; } $cat = wp_unslash( $_GET['cat'] ); // Bail out, if category does not exist. ...

WordPress教程:有时候为了方便我们管理分类,我们需要在wordpress后台的分类目录列表页按分类添加时间倒序显示,同样发布文章选分类时也想倒序显示,那么我们只需要在主题的functions.php里添加以下代码即可。 add_action('get_terms_args','mobantu_admin_order_cats',10,2); function mobantu_admin_order_cats($args,$taxonomies){ if(is_admin()){ $taxonomy = $taxonomies[0]; $screen = get_current_screen(); if(($screen->id=='edit-category'||$screen->id=='post') && $taxonomy=='category'){ $args['orderby']='id'; $args['order']='desc'; } } return $args; }  

WordPress教程:这些格式都是sketchup软件需要用的一些模型材质的格式,我们可以通过增加以下代码来支持,在主题的functions.php里增加: function custom_mime_types($mimes) { // 添加新的 MIME 类型 $mimes['skp'] = 'application/octet-stream'; // 你可能需要根据实际情况调整 MIME 类型 $mimes['ies'] = 'application/octet-stream'; // 同上 $mimes['hdr'] = 'image/vnd.radiance'; // HDR 图像的 MIME 类型,这个可能需要根据实际情况调整 $mimes['sum'] = 'application/octet-stream'; // 同上 return $mimes; } add_filter('upload_mimes', 'custom_mime_types');

WordPress教程:wp侧栏小工具加一个推广AI的模块,类似对话打字效果,下面是代码: <div class="widget widget-chatgpt"> <div class="chatgpt-msg"> <div class="item"><span>小明</span><div class="msg"><span id="typed-me-span">帮我写个关于***的开题报告</span></div></div> <div class="item"><span>AI助手</span><div id="typed-text" class="msg"><span id="typed-text-span">好的,正在构思中,请稍等...</span></div></div> </div> <a href="<?php echo _MBT('child_openai_link');?>" target="_blank" clas...

WordPress教程:获取 WooCommerce 数据可以使用 wc_get_product() 函数。该函数是 WooCommerce 提供的一个内置函数,用于获取产品的详细信息。 使用 wc_get_product() 函数,你可以通过传递产品的 ID 或 SKU 来获取产品对象。该函数返回一个 WC_Product 对象,你可以使用该对象来访问产品的各种属性和方法。 以下是获取 WooCommerce 数据的示例代码: $product_id = 123; // 产品的 ID $product = wc_get_product( $product_id ); // 获取产品对象 // 获取产品的名称 $product_name = $product->get_name(); // 获取产品的价格 $product_price = $product->get_price(); // 获取产品的描述 $product_description = $product->get_descripti...

WordPress教程:创建一个新片段: 进入 WordPress 后台,点击 Code Snippets > Add New。 将下面的 PHP 代码粘贴到片段内容中。 add_action('wp_ajax_add_quick_buy_to_cart', 'add_quick_buy_to_cart'); add_action('wp_ajax_nopriv_add_quick_buy_to_cart', 'add_quick_buy_to_cart'); function add_quick_buy_to_cart() { $product_id = intval($_POST['product_id']); $product_num = $_POST['product_num'] ? intval($_POST['product_num']) : 1; if ($product_id) { // 将商品添加到购物车 WC()->cart->add_to_cart($product_id, $product_num); } // 返回购物车页面的 URL,或者结账页面的 URL wp_send_json_success(ar...

WordPress教程:我们在做网站时很多时候有提供用户投稿的功能,那么用户投稿后需要审核,在后台如何提醒管理员有需要审核的文章呢?可以使用以下代码来实现: function wp_my_admin_enqueue_scripts2( $hook ) { global $wpdb; $task_post = $wpdb->get_var("SELECT count(ID) FROM $wpdb->posts WHERE post_type = 'task' and (post_status='pending' or post_status='draft')"); if($task_post){ wp_enqueue_script( 'my_admin_script', get_stylesheet_directory_uri().'/static/js/admin.js', false, null, true ); ?> <script> var task_post_count = '<?php echo $task_post;?>'; </script> <?php } } ...

WordPress教程:有的用户在使用erphpdown插件后,想批量清理一些没有充值记录的僵尸用户,那么如何筛选出这些用户呢? function add_custom_user_view_link($views) { global $wpdb, $current_user; if (current_user_can('edit_users')) { $custom_link_url = admin_url('users.php?cz=no'); $custom_link_text = '无充值用户'; $views['custom_user_list'] = '<a href="' . esc_url($custom_link_url) . '" class="'.((isset($_REQUEST['cz']) && $_REQUEST['cz'] == 'no')?'current':'').'">' . esc_html($custom_link_text) . '</a>'; } return $views; } add_filter('views_users', 'add_custom_user_view_link...