【问题标题】:Wordpress TinyMCE plugin install failedWordpress TinyMCE 插件安装失败
【发布时间】:2013-10-19 08:02:05
【问题描述】:

我想通过使用自定义按钮扩展 TinyMCE 编辑器来自定义我的 Wordpress 网站。

现在我可以找到很多关于如何实现此类“插件”的教程,但似乎都没有提到如何将其安装到 Wordpress 中。这样做肯定是微不足道的,但我似乎做不到......

假设我将以下两个文件压缩成一个 zip 文件,但是当我尝试将其上传到 Wordpress 时,我得到:

拆包……

正在安装插件……

无法安装软件包。未找到有效插件。

插件安装失败。

返回插件页面

这是functions.php

<?php
// Add these functions to your functions.php file

// add the shortcode handler for YouTube videos
function addYouTube($atts, $content = null) {
        extract(shortcode_atts(array( "id" => '' ), $atts));
        return '<p style="text-align:center"><a href="http://www.youtube.com/v/'.$id.'"><img src="http://img.youtube.com/vi/'.$id.'/0.jpg" width="400" height="300" class="aligncenter" /><span>Watch the video</span></a></p>';
}
add_shortcode('youtube', 'addYouTube');

function add_youtube_button() {
   // Don't bother doing this stuff if the current user lacks permissions
   if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') )
     return;

   // Add only in Rich Editor mode
   if ( get_user_option('rich_editing') == 'true') {
     add_filter("mce_external_plugins", "add_youtube_tinymce_plugin");
     add_filter('mce_buttons', 'register_youtube_button');
   }
}

function register_youtube_button($buttons) {
   array_push($buttons, "|", "youryoutube");
   return $buttons;
}

// Load the TinyMCE plugin : editor_plugin.js (wp2.5)
function add_youtube_tinymce_plugin($plugin_array) {
   $plugin_array['youryoutube'] = get_bloginfo('template_url').'/editor_plugin.js';
   return $plugin_array;
}

function my_refresh_mce($ver) {
  $ver += 3;
  return $ver;
}

// init process for button control
add_filter( 'tiny_mce_version', 'my_refresh_mce');
add_action('init', 'add_youtube_button');
?>

还有 editor_plugin.js

(function() {
    tinymce.create('tinymce.plugins.YourYouTube', {
        init : function(ed, url) {
            ed.addButton('youryoutube', {
                title : 'youryoutube.youtube',
                image : url+'/youtube.png',
                onclick : function() {
                    idPattern = /(?:(?:[^v]+)+v.)?([^&=]{11})(?=&|$)/;
                    var vidId = prompt("YouTube Video", "Enter the id or url for your video");
                    var m = idPattern.exec(vidId);
                    if (m != null && m != 'undefined')
                        ed.execCommand('mceInsertContent', false, '[youtube id="'+m[1]+'"]');
                }
            });
        },
        createControl : function(n, cm) {
            return null;
        },
        getInfo : function() {
            return {
                longname : "YouTube Shortcode",
                author : 'Brett Terpstra',
                authorurl : 'http://brettterpstra.com/',
                infourl : 'http://brettterpstra.com/',
                version : "1.0"
            };
        }
    });
    tinymce.PluginManager.add('youryoutube', tinymce.plugins.YourYouTube);
})();

【问题讨论】:

  • 尝试手动安装插件。
  • 我将这些文件移动到 wp-content/plugins 的文件夹中,但在我的插件列表中看不到它。
  • 您的包已损坏。尝试从 WordPress.org 重新下载
  • 这个问题似乎跑题了,因为它是关于 WordPress 的,属于 wordpress.stackexchange.com

标签: wordpress plugins tinymce installation


【解决方案1】:

解决方案是我缺少 PHP 文件的标头。

<?php
/**
 * Plugin Name: Name Of The Plugin
 * Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
 * Description: A brief description of the Plugin.
 * Version: The Plugin's Version Number, e.g.: 1.0
 * Author: Name Of The Plugin Author
 * Author URI: http://URI_Of_The_Plugin_Author
 * License: A "Slug" license name e.g. GPL2
 */

【讨论】: