此标记用于有关WordPress内容管理系统的特定于编程的问题。非主题问题包括主题开发,WordPress管理,管理最佳实践,服务器配置等。最好在Stack Exchange WordPress开发中提出这些问题。
我创建了一个插件 import.php 我创建了一个插件import.php <?php function fileupload_process() { ini_set('memory_limit', '64M'); set_time_limit(0); $uploadfiles = $_FILES['uploadfiles']; //echo 'ddd'; // exit; if (is_array($uploadfiles)) { //echo 'ram'; //print_r($uploadfiles); echo $uploadfiles['name']; // foreach ($uploadfiles as $key => $value) { foreach ($uploadfiles['name'] as $key => $value) { // look only for uploaded files if ($uploadfiles['error'][$key] == 0) { $filetmp = $uploadfiles['tmp_name'][$key]; if (($handle = fopen($filetmp, "r")) !== FALSE) { $flag = true; $songs = explode("\n",file_get_contents($filetmp)); $count = count( $songs ); unset($songs); echo "Total item count: " . $count . "<BR />"; // typical entry: If You Have To Ask,Red Hot Chili Peppers,0:03:37, Rock & Alternative,1991,on // using a generous 1000 length - will lowering this actually impact performance in terms of memory allocation? while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { // Skip the first entry in the csv containing colmn info if($flag) { $flag = false; echo "<BR />"; $count--; continue; } // insert the current post and relevant info into the database $currently_processed = process_custom_post($data); $count--; } echo "Done!"; fclose($handle); } unlink($filetmp); // delete the temp csv file } } } } // END: file_upload_process() function process_custom_post($song) { global $wpdb; // Prepare and insert the custom post $track = (array_key_exists(0, $song) && $song[0] != "" ? $song[0] : 'N/A'); $custom_post = array(); $custom_post['post_type'] = 'songs'; $custom_post['post_status'] = 'publish'; $custom_post['post_title'] = $track; $post_id = wp_insert_post( $custom_post ); // Prepare and insert the custom post meta $meta_keys = array(); $meta_keys['artist_name'] = (array_key_exists(1, $song) && $song[1] != "" ? $song[1] : 'N/A'); $meta_keys['song_length'] = (array_key_exists(2, $song) && $song[2] != "" ? $song[2] : 'N/A'); $meta_keys['song_genre'] = (array_key_exists(3, $song) && $song[3] != "" ? $song[3] : 'N/A'); $meta_keys['song_year'] = (array_key_exists(4, $song) && $song[4] != "" ? $song[4] : 'N/A'); $meta_keys['song_month'] = (array_key_exists(5, $song) && $song[5] != "" ? $song[5] : 'N/A'); $meta_keys['sample_playlist'] = (array_key_exists(6, $song) && $song[6] != "" ? $song[6] : ''); $custom_fields = array(); $place_holders = array(); $query_string = "INSERT INTO $wpdb->postmeta ( post_id, meta_key, meta_value) VALUES "; foreach($meta_keys as $key => $value) { array_push($custom_fields, $post_id, $key, $value); $place_holders[] = "('%d', '%s', '%s')"; } $query_string .= implode(', ', $place_holders); $wpdb->query( $wpdb->prepare("$query_string ", $custom_fields)); return true; }// END: process_custom_post() function import_page () { //HTML for the import page + the file upload form if (isset($_POST['uploadfile'])) { fileupload_process(); } } 在main.php中我确实自定义了代码: <?php /* Plugin Name: csv ram Plugin URI: http://www.newdreamdatasystems.com Description: csv ram Version: 2.0 Author: RAM KUMAR Author URI: http://www.newdreamdatasystems.com */ define('SAVEQUERIES', true); define( 'MY_PLUGIN_ROOT' , dirname(__FILE__) ); include_once( MY_PLUGIN_ROOT . '/import.php'); $ram = import_page(); add_action('admin_menu', 'register_my_custom_submenu_page'); function register_my_custom_submenu_page() { add_submenu_page( 'tools.php', 'My Custom Submenu Page', 'My Custom Submenu Page', 'manage_options', 'my-custom-submenu-page', 'my_custom_submenu_page_callback' ); } function my_custom_submenu_page_callback() { $html= <<<RAM <form action="{$ram}" method="post" enctype="multipart/form-data" name="form1" id="form1" onSubmit=""> <label>upload file<input type="file" name="uploadfiles" id="uploadfiles" /></label> <label><input type="submit" name="uploadfile" id="uploadfile" value="Submit" /></label> </form> RAM; echo $html; } 但我有一个错误: 警告:第 13 行 C:\xampp\htdocs\wordpress\wp-content\plugins ry\import.php 中为 foreach() 提供的参数无效..? 如何解决这个问题? 三大问题: 函数import_page()应该在回调中运行: function my_custom_submenu_page_callback() { import_page(); /* etc */ } Action <form action=""> 应该为空,因此它会返回到同一个插件页面,/wp-admin/tools.php?page=my-custom-submenu-page。 文件字段应允许多次上传,因此这将起作用foreach ($uploadfiles as $key => $value)并消除您所看到的错误。 <input type="file" name="uploadfiles[]" id="uploadfiles" multiple /> 想好一点,你可能不需要multiple属性,但是然后调整其余的逻辑。 但是调整后,还是有一堆通知和警告,比如Array to string conversion,Undefined index: name和fopen(): Filename cannot be empty。 所有这些都可以通过仔细调试轻松解决,这就是我发现上述 3 个问题的方法: 添加 printf( '<pre>%s</pre>', print_r( $INSPECT_VAR, true ) ); 去检查有问题的变量。 $('.import-btn').on('click', function() { $.ajax({ url: '<?php echo admin_url('admin-ajax.php'); ?>', type: "POST", data: { action: 'import_data' }, success: function(data) { if (data !== 0) { Swal.fire({ icon: "success", title: "Imported data", text: "Thankyou for importing this file", }); } else { Swal.fire({ icon: "error", title: "Oops...", text: "Something went wrong!", }); } }, error: function() { alert('Error'); } }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> add_action('wp_ajax_nopriv_import_data', 'import_data'); add_action('wp_ajax_import_data', 'import_data'); function import_data() { function upload_image_from_url($thumbnail_url) { $image_name = basename($thumbnail_url); $image_data = file_get_contents($thumbnail_url); $upload_dir = wp_upload_dir(); $image_path = $upload_dir['path'] . '/' . $image_name; if ($image_data === false) { return new WP_Error('image_fetch_failed', 'Failed to fetch image data'); } $image_saved = file_put_contents($image_path, $image_data); if ($image_saved == FALSE) { return new WP_Error('Upload failed', 'Failed to upload file'); } return $image_path; } function insert_image_to_wp_posts($image_path, $post_id) { $upload_dir = wp_upload_dir(); $image_url = str_replace($upload_dir['path'], $upload_dir['url'], $image_path); $file_info = array( 'guid' => $image_url, 'post_mime_type' => mime_content_type($image_path), 'post_title' => sanitize_file_name(pathinfo($image_path, PATHINFO_FILENAME)), 'post_status' => 'inherit', 'post_parent' => $post_id, ); $attachment_id = wp_insert_attachment($file_info, $image_path, $post_id); require_once(ABSPATH . 'wp-admin/includes/image.php'); $attachment_metadata = wp_generate_attachment_metadata($attachment_id, $image_path); wp_update_attachment_metadata($attachment_id, $attachment_metadata); return $attachment_id; } $csvFile = get_template_directory() . '/movie_data.csv'; if (!file_exists($csvFile)) { echo 'CSV file not found'; return; } if (($handle = fopen($csvFile, 'r')) !== FALSE) { $header = fgetcsv($handle); while (($data = fgetcsv($handle)) !== FALSE) { $post_title = isset($data[1]) ? $data[1] : ''; $post_date = isset($data[2]) ? $data[2] : ''; $category = isset($data[3]) ? $data[3] : ''; $thumbnail_url = isset($data[4]) ? $data[4] : ''; $post_content = "Movies"; // Creating post $post_data = array( 'post_title' => $post_title, 'post_content' => $post_content, 'post_status' => 'publish', 'post_type' => 'movie', 'post_date' => $post_date, ); if ($post_data): $post_id = wp_insert_post($post_data); update_post_meta($post_id, 'category', $category); if ($thumbnail_url) { $image_path = upload_image_from_url($thumbnail_url); if (!is_wp_error($image_path)) { $attachment_id = insert_image_to_wp_posts($image_path, $post_id); if (!is_wp_error($attachment_id)) { update_post_meta($post_id, "_thumbnail_id", $attachment_id); } } else { echo "Error while inserting image into WP Posts"; } } else { error_log('thumbnail url not generated'); } endif; } fclose($handle); echo '1'; // Success } else { echo '0'; // Failure opening the file } }
WordPress 过滤器用于在编辑帖子作者框中更改作者列表
我想更改自定义帖子类型的编辑帖子页面上的作者选择下拉列表中的用户列表。我可以使用过滤器挂钩吗?我没查到任何信息...
add_filter('wp_nav_menu_items', 'add_custom', 10, 2); 函数 add_custom($items, $args) { if ($args->theme_location == '主要') { $items .= ''; }
注意:函数 _load_textdomain_just_in_time 被错误调用
在 WordPress 6.7 之后,我立即在我的 WordPress 网站中收到以下 PHP 通知。 注意:函数 _load_textdomain_just_in_time 被错误调用。 BL 的翻译加载中...
我正在尝试勾选一个复选框才能继续下一页。我正在functions.php 内部进行开发。 Functions.php 是否不允许常规 HTML 标签内的必需内容? 这里是...
抱歉,我在编码方面还很陌生,而且还使用 WordPress 和 ACF,我正在尽最大努力,但我无法弄清楚: 我正在尝试以富文本格式加载我的分类描述。 目前我是我们...
希望能在我目前正在构建的网站上获得一些帮助,因为我似乎无法完成某些工作。该网站有一个自定义帖子类型“evenement”。我创建了一个自定义分类“locatie”并且...
SSLCommerze 付款方式未显示在 WooCommerce 结帐页面上
我已经安装了 WooCommerce 主题并设置了 SSLCommerz 以在沙盒模式下进行付款处理以进行测试。虽然设置中启用了SSLCommerz,但付款选项不显示...
如何将 Wordpress 部署到 Azure 资源,而不使用“应用程序服务上的 wordpress”
我想在 Azure 中创建 Linux Web 应用程序、My SQL 数据库、托管身份和 Blob 存储。 然后从他们的网站下载 WordPress,配置文件并使用 DevOps CICD 通过 FT 进行部署...
我想在 buddypress 的侧边栏小部件中仅显示建议组列表。有没有建议在 WordPress 中为 buddypress 提供免费插件或功能? 沃普斯版本:6.7 巴迪新闻:14.2.1
如何重置Wordpress - 设置 - 常规页面,使网站只能使用HTTP?
解释 在Wordpress - 设置 - 常规中,我编辑了 WordPress 地址和站点 URL 使用 HTTPS 而不是 HTTP,而无需事先安装 SSL 证书。 托管提供商...
在自定义按钮组件(wordpress 编辑器块)的 href 中使用 WordPress 页面的 URL
我正在 WordPress 中创建一个按钮。为此,我想使用自定义块编辑器组件 我想要实现的是一个按钮,您可以根据其中的页面选择现有的 URL
Woocommerce - 复选标记验证不适用于“proceed_to_checkout”按钮
我是使用 Woocommerce 进行开发的新手。目前,我有一条带有复选框的客户免责声明消息,如果未单击该复选框,将显示一个弹出窗口以在进入购物车之前选中该框。然而...
WordPress 强制重定向到 HTTPS 在某些页面上不起作用
我希望我的网站始终显示“https://www.example.com”。如果用户单击不同格式的 URL,则必须重定向到包含“www”和“https”的完整 URL。 我...
WooCommerce 的 MailChimp:在结帐字段中间添加复选框
WooCommerce 插件的 MailChimp 很棒,但我刚刚得到了一个设计,其中 WooCommerce 结帐中的“订阅我们的新闻通讯”复选框紧接在电子邮件字段后面...
我正在从事 WordPress 主题开发,但 walker 菜单不起作用
这就是结果:WordPress walker 菜单不起作用。它说的是: 警告:尝试读取 C:\Users\Emon\Local Sites heme-development pp\public\wp-cont 中 int 上的属性“link_after”...
我正在尝试在 Elementor 中设置评论小部件的自定义过滤。基本上想要做的是为产品模型添加一个新的 ACF 字段,然后让我的循环轮播模板填充...
密码保护页面功能无法在 Timber/Twig (Wordpress) 中开箱即用
我正在使用 WordPress 和 Timber 来构建自定义主题。我需要对我的网站页面进行密码保护。我已经更改了此页面的 WordPress 管理区域中的设置,但...
当我更新帖子时阻止特定插件自定义字段更新 - WordPress
我正在使用一个特定的插件来计算我的帖子浏览量。 它将值存储在名为“hits”的 postmeta 自定义字段中,并且该值会实时更新。 我刚刚注意到,作为一名管理员...
根据用户在 WooCommerce 中的总支出显示自定义文本
所以我想在 WooCommerce 上运行 Tier 程序,我需要根据网站上的总支出向用户显示 Tier 级别。 我正在使用如何获取用户(客户)在 WooCom 中花费的总金额...