FlexSlider WordPress - Добавление подписи и внешних ссылок на изображений

StackOverflow https://stackoverflow.com//questions/9609467

Вопрос

Итак, я пытался интегрировать подписи и ссылки на плагин Envatu Flexslider, обнаруженный в Nettuts.

http://wp.tutsplus.COM / Учебники / Create-A-Resaling-Slider-Plugin-S-Flexslider /

Добавление зоны заготовки на «Flexslide Plug Intin» не работает.

Вот файл envate-flexslider.php, где происходит вся магия.

 <?php

 /*
 Plugin Name: Envato FlexSlider
 Plugin URI: 
 Description: A simple plugin that integrates FlexSlider
 (http://flex.madebymufffin.com/) with WordPress using custom post types!
 Author: Joe Casabona
 Version: 0.5
 Author URI: http://www.casabona.org
 */

 /*Some Set-up*/
 define('EFS_PATH', WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/' );
 define('EFS_NAME', "Envato FlexSlider");
 define ("EFS_VERSION", "0.5");

 /*Files to Include*/
 require_once('slider-img-type.php');


 /*Add the Javascript/CSS Files!*/
 wp_enqueue_script('flexslider', EFS_PATH.'jquery.flexslider-min.js', array('jquery'));
 wp_enqueue_style('flexslider_css', EFS_PATH.'flexslider.css');


 /*Add the Hooks to place the javascript in the header*/

 function efs_script(){
 print '<script type="text/javascript" charset="utf-8">
 jQuery(window).load(function() {
 jQuery(\'.flexslider\').flexslider({
  animation: "slide",
  slideshowSpeed: 6000,           
  animationDuration: 300,      
  directionNav: false,
  controlNav: false
   });
  });
  </script>';
  }

 add_action('wp_head', 'efs_script');

 function efs_get_slider(){

$slider= '<div class="flexslider">
  <ul class="slides">';

$efs_query= "post_type=slider-image";
query_posts($efs_query);


if (have_posts()) : while (have_posts()) : the_post(); 
    $img= get_the_post_thumbnail( $post->ID, 'large' );
    $slider.='<li>'.$img.'</li>';

endwhile; endif; wp_reset_query();


$slider.= '</ul>
</div>';

return $slider;
 }


 /**add the shortcode for the slider- for use in editor**/

 function efs_insert_slider($atts, $content=null){

 $slider= efs_get_slider();

 return $slider;

 }


 add_shortcode('ef_slider', 'efs_insert_slider');



 /**add template tag- for use in themes**/

 function efs_slider(){

print efs_get_slider();
 }


 ?>
.

Что касается добавления внешних ссылок на изображенные изображения, я попытался настроить пользовательские поля в моих пользовательских типах поста через файл Slider-IMG-Type.php, и это не сработало.

Спасибо за вашу помощь, Дастин

Это было полезно?

Решение

ОК, так это то, как я смог интегрировать обе ссылки и подписи в FlexSlider.Надеюсь, это поможет всем, кто борется как у него сильно, как у меня есть.В envate-flexslider.php Вот то, что вам нужно для функции efs_get_slider ().Просто убедитесь, что вы называете свои пользовательские поля в ваших скольжениях Image_Caption и Image_Link соответственно.

function efs_get_slider(){

 $slider= '<div class="flexslider">
 <ul class="slides">';

 $efs_query= "post_type=slider-image";  
 $myposts = get_posts($efs_query);

 foreach($myposts as $post) : setup_postdata($post);
    $img= get_the_post_thumbnail( $post->ID, 'full' );
    $slide_link= get_post_meta( $post->ID, 'image_link', true);
    $slide_caption= get_post_meta( $post->ID, 'image_caption', true);
    $slider.='<li><a href='.$slide_link.'>'.$img.'</a><p class="flex-caption">'.$slide_caption.'</p></li>';

 endforeach;

 $slider.= '</ul>

 </div>';

 return $slider;
}
.

Другие советы

Так что в основном вы можете добавить во все, что вы хотите прямо здесь:

if (have_posts()) : while (have_posts()) : the_post(); 
    $img= get_the_post_thumbnail( $post->ID, 'large' );
    $slider.='<li>'.$img.'</li>';

endwhile; endif; wp_reset_query();


$slider.= '</ul>
</div>';

return $slider;
.

Так что скажем, вы хотите добавить некоторую пользовательскую информацию поля, то вам просто нужно установить переменную в качестве этой информации, а затем добавить ее To The Slider.

if (have_posts()) : while (have_posts()) : the_post(); 
    $img= get_the_post_thumbnail( $post->ID, 'large' );
    $caption= get_post_meta($post->ID, 'custom_field', true); //get custom field
    $slider.='<li>';
    $slider.= $img;
    $slider.= '<span>'.$caption.'</span>';
    $slider.='</li>';

endwhile; endif; wp_reset_query();


$slider.= '</ul>
</div>';

return $slider;
.

Но все же все это беспокоит.Давайте упростим это и просто сделайте правильный SPRINTF и оберните это в несколько строк.

if (have_posts()) : while (have_posts()) : the_post(); 

    $slider .= sprintf('<li>%1$s<span>%2$s</span></li>',
        get_the_post_thumbnail( $post->ID, 'large' ),
        get_post_meta($post->ID, 'custom_field', true)
        );

endwhile; endif; wp_reset_query();


$slider.= '</ul>
</div>';

return $slider;
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top