我创建了一个插件,出于某种原因,当我尝试通过zip上传并激活它时。我收到的消息是没有有效的标题'。如果我只是通过ftp删除文件夹似乎没问题。有什么建议吗?
这是插件主文件:
<?php
/*
* Plugin Name: Album Gallery
* Plugin URI: http://vinteractive.co.uk
* Description: An Album based Slider Gallery.
* Version: 1.0
* Author: Vincent Stephens
* Author URI: http://vinteractive.co.uk
* License: Do Not Redistribute
*/
define('ALBUM_GALLERY_URL', plugins_url() . '/album-gallery/');
define('ALBUM_GALLERY_ABSPATH', ABSPATH . 'wp-content/plugins/album-gallery/');
define( 'ACF_LITE' , true );
include(ALBUM_GALLERY_ABSPATH . 'custom-fields/acf.php');
include(ALBUM_GALLERY_ABSPATH . 'custom-fields/album-fields.php');
include(ALBUM_GALLERY_ABSPATH . 'custom-post-types/albums-gallery-post-type.php');
include(ALBUM_GALLERY_ABSPATH . 'shortcodes/shortcodes.php');
// Enque Scripts and styles
function album_gallery_scripts() {
wp_register_script('jquery-for-nivo', plugins_url('/js/jquery-1.9.0.min.js', __FILE__), array('jquery'),'1.1', true);
wp_enqueue_script('jquery-for-nivo');
wp_register_script('nivo-slider', plugins_url('/nivo/scripts/jquery.nivo.slider.js', __FILE__), array('jquery'),'1.1', true);
wp_enqueue_script('nivo-slider');
wp_register_script('album-gallery-script', plugins_url('/js/album-gallery.jquery.js', __FILE__), array('jquery'),'1.1', true);
wp_enqueue_script('album-gallery-script');
wp_register_style('album-gallery', plugins_url('/css/album-gallery.css', __FILE__));
wp_enqueue_style('album-gallery');
wp_register_style('nivo-slider', plugins_url('/nivo/nivo-slider.css', __FILE__));
wp_enqueue_style('nivo-slider');
wp_register_style('style', plugins_url('/nivo/style.css', __FILE__));
wp_enqueue_style('style');
// Nivo Theme
wp_register_style('theme-default', plugins_url('/nivo/themes/default/default.css', __FILE__));
wp_enqueue_style('theme-default');
}
add_action( 'wp_enqueue_scripts', 'album_gallery_scripts' );
?>
短代码文件:
<?php
function album_gallery_shortcode() {
?>
<span class="info_btn"></span>
<?php
// Loop for Album Gallery Post Type
$args = array(
'post_type' => 'albums_gallery',
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$album_name = get_the_ID();
$album_description = get_field('album_description');
?>
<div class="album album_<?php echo $album_name ?>">
<?php for ($i = 0; $i <= 0; $i++) { ?>
<div class="description album_<?php echo $album_name ?>">
<?php echo $album_description; ?>
</div>
<?php } ?>
<div class="slider-wrapper theme-default">
<div class="slider" class="nivoSlider">
<?php
$images = Array();
for($i = 1; $i <= 6; $i++) {
$image = get_field("image_{$i}");
if(!$image || !$image['url']) {
break;
}
$caption = get_field("image_{$i}_caption");
?>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" title="<?php echo $caption; ?>" />
<?php } ?>
</div>
</div>
</div>
<!-- End Album -->
<?php endwhile; wp_reset_query(); ?>
<!-- // Loop for Album Gallery Post Type -->
<div class="thumbnails">
<?php
$args = array(
'taxonomy_albums' => '',
'post_type' => 'albums_gallery',
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
// album name becomes post id
$album_name = get_the_id();
$album_thumb = get_field('thumbnail');
$album_caption = get_field('album_caption');
if( !empty($album_thumb) ): ?>
<div class="thumbs" style="width: 130px; float: left; margin: 5px;">
<img class="thumb thumb_album_<?php echo $album_name; ?>" src="<?php echo $album_thumb['url']; ?>" alt="<?php echo $album_thumb['alt']; ?>" width="130" />
<p class="title"><?php the_title(); ?></p>
<p class="caption"><?php echo $album_caption ?></p>
</div>
<?php endif; ?>
<?php endwhile; wp_reset_query(); ?>
</div>
<!-- end thumbnails -->
<?php
}
add_shortcode( 'album-gallery', 'album_gallery_shortcode' );
?>
答案 0 :(得分:1)
我怀疑它与您在插件中包含的高级自定义帖子插件有关。我有一个类似的问题,我通过将acf文件夹向下移动一级来解决它。意思是,而不是myplugin/advanced-custom-fields
我把它放在myplugin/inc/advanced-custom-fields
它有效。
当然,不要忘记将插件主文件的路径更改为
include(ALBUM_GALLERY_ABSPATH . 'inc/custom-fields/acf.php');
顺便说一句,我更喜欢这样调用插件:
if( !class_exists('Acf') )
{
define( 'ACF_LITE' , true ); // Hide it from admin
include_once('inc/advanced-custom-fields/acf.php' );
}
因为您不希望用户在已经安装它的情况下再次加载它。
答案 1 :(得分:0)
在插件中包含ACF时遇到了类似的问题,我花了很长时间才弄明白,特别是因为每次创建新插件时都会以相同的方式删除插件标题模板。
问题源于包含的acf.php插件标题。从该文件中删除wordpress注释标题,无论您将其包含在哪个目录级别,它似乎都可以正常安装。