借一步网
作者:
在
下面给出的插件代码,帮助你实现将 IPFS 分布式文件系统集成到 WordPress,并实现文件分享和图床功能。该插件实现的核心功能包括:
QmNvT9MEHZCvLcJGHc763Jw5unKVNb7b1FHRHrD7uwNVfT
xxxx.pdf
save_post
https://www.dreamlink.cloud/explorer?cid=CID值&name=文件名
你可以根据下面的代码自定义和扩展更多功能。
将下面代码保存为 ipfs-integration.php 并放在 WordPress 的插件目录 wp-content/plugins/ipfs-integration/ 下,然后在后台激活即可使用。
ipfs-integration.php
wp-content/plugins/
<?php /* Plugin Name: IPFS分布式文件分享与图床插件 Description: 将IPFS分布式文件系统集成到WordPress,并提供分布式文件分享和图床功能。在文章编辑时,可输入IPFS的CID和文件名,生成对应的分享链接。 Version: 1.0 Author: Steper */ // 防止直接访问 if ( ! defined( 'ABSPATH' ) ) exit; /** * 在文章编辑页面添加一个侧边栏元数据框,用于输入IPFS CID和文件名 */ function ipfs_add_meta_box() { add_meta_box( 'ipfs_meta_box', // Unique ID 'IPFS 配置', // Title 'ipfs_meta_box_callback', // Callback function 'post', // Screen: 这里设置为 post 类型,如果需要支持其他类型,请调整 'side', // Context 'default' // Priority ); } add_action( 'add_meta_boxes', 'ipfs_add_meta_box' ); /** * 渲染元数据框内容 * * @param WP_Post post ) { // 添加安全字段,防止CSRF攻击 wp_nonce_field( 'ipfs_save_meta_box_data', 'ipfs_meta_box_nonce' ); // 获取现有值(如果有的话) post->ID, '_ipfs_cid', true ); post->ID, '_ipfs_filename', true ); ?> <p> <label for="ipfs_cid"><strong>IPFS CID地址</strong></label><br> <input type="text" id="ipfs_cid" name="ipfs_cid" value="<?php echo esc_attr( ipfs_filename ); ?>" style="width: 100%;" placeholder="例如:xxxx.pdf"> </p> <?php } /** * 保存元数据框中输入的数据 * * @param int post_id ) { // 检查 nonce 是否设置 if ( ! isset( _POST['ipfs_meta_box_nonce'], 'ipfs_save_meta_box_data' ) ) { return; } // 如果是自动保存,直接返回 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // 检查用户权限 if ( isset( _POST['post_type'] ) { if ( ! current_user_can( 'edit_page', post_id ) ) { return; } } // 存储或更新IPFS CID if ( isset( ipfs_cid = sanitize_text_field( post_id, '_ipfs_cid', _POST['ipfs_filename'] ) ) { _POST['ipfs_filename'] ); update_post_meta( ipfs_filename ); } } add_action( 'save_post', 'ipfs_save_meta_box_data' ); /** * 在文章内容前/后追加生成的IPFS分享链接 * * 这里我们通过过滤器输出IPFS链接,你也可以灵活调整位置和展示方式或者使用短代码 */ function ipfs_append_share_link( post; post->ID, '_ipfs_cid', true ); post->ID, '_ipfs_filename', true ); if ( ! empty( ipfs_filename ) ) { ipfs_cid ) . "&name=" . urlencode( link_html = '<div class="ipfs-share-link" style="margin-top:20px; padding:10px; border:1px solid #ddd;">'; url ) . '" target="_blank">' . esc_html( link_html .= '</div>'; // 这里我们选择将分享链接追加到文章末尾 link_html; } } return post; post->ID, '_ipfs_cid', true ); post->ID, '_ipfs_filename', true ); if ( ! empty( ipfs_filename ) ) { ipfs_cid ) . "&name=" . urlencode( url ) . '" target="_blank">' . esc_html( $url ) . '</a></div>'; } return ''; } add_shortcode( 'ipfs_share_link', 'ipfs_share_link_shortcode' );
wp-content/plugins/ipfs-integration
https://www.dreamlink.cloud/explorer?cid=QmNvT9MEHZCvLcJGHc763Jw5unKVNb7b1FHRHrD7uwNVfT&name=xxxx.pdf
[ipfs_share_link]
这个示例插件提供了一个基本实现,你可以根据业务需求进一步扩展功能和样式。
要发表评论,您必须先登录。
下面给出的插件代码,帮助你实现将 IPFS 分布式文件系统集成到 WordPress,并实现文件分享和图床功能。该插件实现的核心功能包括:
允许用户输入 IPFS 的 CID(例如
QmNvT9MEHZCvLcJGHc763Jw5unKVNb7b1FHRHrD7uwNVfT
)和文件名(例如xxxx.pdf
)。使用
save_post
钩子保存用户输入的 CID 和文件名。当文章中包含了 IPFS 配置元数据时,自动在文章内容或指定位置输出分享链接,链接的格式为:
https://www.dreamlink.cloud/explorer?cid=CID值&name=文件名
你可以根据下面的代码自定义和扩展更多功能。
插件代码示例
将下面代码保存为
ipfs-integration.php
并放在 WordPress 的插件目录wp-content/plugins/
ipfs-integration/ 下,然后在后台激活即可使用。使用说明
ipfs-integration.php
,放入wp-content/plugins/ipfs-integration
文件夹中。QmNvT9MEHZCvLcJGHc763Jw5unKVNb7b1FHRHrD7uwNVfT
)和对应的文件名(例如xxxx.pdf
)。https://www.dreamlink.cloud/explorer?cid=QmNvT9MEHZCvLcJGHc763Jw5unKVNb7b1FHRHrD7uwNVfT&name=xxxx.pdf
[ipfs_share_link]
短代码来显示该链接。这个示例插件提供了一个基本实现,你可以根据业务需求进一步扩展功能和样式。