Master-X
Форум | Новости | Статьи
Главная » Форум » Блоги и Социальные сети » 
Тема: Wordpress How To
цитата
05/05/11 в 13:19
 Vodafone
Yacc писал:
Лайтбокс - это плагин который картинки показывает? Если он, то там есть проблема связанная с тем, что пока страница не загрузится полностью яваскрипты плагина не отрабатывают. А это легко может быть даже если с виду всё загрузилось, например когда в футере есть глючный яваскрпит.

Если тебе надо посты экспортировать, то это можно сделать из админки пройдя по ссылке site.com/wp-admin/export.php


там что-то другое с Лайтбоксом. хрень какая-то вообще не понятная icon_confused.gif

это мне нужно скачать файл export.php?

у меня есть ГСы на вордпрессе куда спамеры шлют коменты. мне приходит оповещение на емаил о поступлении коментов. уже достали эти оповещения icon_evil.gif как сделать так чтобы они не приходили?
цитата
06/05/11 в 13:20
 goodlover
Yacc писал:
Код:
function yacc_nav_menu_items( $items ) {
   if( is_admin() && $GLOBALS['pagenow'] == 'nav-menus.php' ) return $items;
   $items[0]->classes[] = 'first';
   $items[count( $items ) - 1]->classes[] = 'last';
   return $items;
}
add_filter( 'wp_get_nav_menu_items', 'yacc_nav_menu_items' );

Спасибо, коротко и ясно. Работает! smail54.gif
цитата
06/05/11 в 20:41
 Yacc
Flowplayer в кляре. icon_smile.gif

Для приготовления, помимо перечисленного в предыдущем рецепте, нам понадобится плагин Content. Этот плагин предназначен для вывода произвольного HTML кода поверх плеера. Здесь используется для вывода рекламы.
Идём по ссылке, качаем архив с плагином. Из всего архива нам нужен только один файл: flowplayer.content-3.2.0.swf, который надо положить в папку flowplayer в папке темы.

Ещё понадобится кнопка, фигурирующая в коде под именем play_large.png:


В конец functions.php добавляем


define( 'FLOWPLAYER_DIR', get_bloginfo( 'template_url' ) . '/flowplayer/' );
define( 'FLOWPLAYER_CORE_JS', FLOWPLAYER_DIR . 'flowplayer-3.2.6.min.js' );
define( 'FLOWPLAYER_PLAYER_SWF', FLOWPLAYER_DIR . 'flowplayer-3.2.7.swf' );
define( 'FLOWPLAYER_CONTROLS_SWF', FLOWPLAYER_DIR . 'flowplayer.controls-3.2.5.swf' );
define( 'FLOWPLAYER_CONTENT_SWF', FLOWPLAYER_DIR . 'flowplayer.content-3.2.0.swf' );

wp_register_script( 'flowplayer', FLOWPLAYER_CORE_JS );
if ( !is_admin() ) wp_enqueue_script( 'flowplayer' );

add_shortcode( 'flowplayer', 'yacc_flowplayer' );
function yacc_flowplayer( $atts ) {
   extract( shortcode_atts( array(
      'video' => '',
      'image' => '',
      'id' => 'player-' . uniqid(),
      'width' => 320,
      'height' => 240,
      'stop_after' => 1000,
      'ad' => '',
      'title' => '',
      'description' => '',
      'caption' => ''
   ), $atts ) );   
   if( $video == '' ) return;      
   if( $image == '' ) { ?>
      <p>
         <a href="<?php echo $video; ?>" style="display:block;<?php echo 'width:'.$width.'px; height:'.$height.'px;'; ?>" id="<?php echo $id; ?>"></a>
         <?php echo yacc_flowplayer_setup( $id, $width, $height, $stop_after, $ad ); ?>
      </p><?php
   }
   else { ?>
   <style>
      .player {
         height:<?php echo $height; ?>px;
         width:<?php echo $width; ?>px;
         cursor:pointer;
         text-align:center;
      }
      .player img {
         margin-top:<?php echo ( $height - 83 ) / 2; ?>px;
      }
      .player .meta {
         height:40px;
         color:#fff;
         background:#000;
         opacity:0.7;
         margin-top:<?php echo ( $height - 83 ) / 2 - 55; ?>px;
         padding:5px;
         font-family:"bitstream vera sans","trebuchet ms";
         font-size:12px;
         line-height:14px;
      }      
      .player .meta .video-title {
         text-transform: uppercase;
      }      
      .player .meta .video-description {   
      }      
      .player .meta .video-caption {
         color:#99FF99;
      }
      </style>
      <div class="player" id="<?php echo $id; ?>" href="<?php echo $video; ?>" style="background: url(<?php echo $image; ?>);">
         <img src="http://example.com/wp-content/uploads/2011/05/play_large.png" alt="Play this video" />
         <div class="meta">
            <div class="video-title">
               <?php echo $title; ?>
            </div>
            <div class="video-description">
               <?php echo $description; ?>
            </div>
            <div class="video-caption">
               <?php echo $caption; ?>
            </div>
         </div>
      </div>
      <p>
         <?php yacc_flowplayer_setup( $id, $width, $height, null, $ad ); ?>
      </p><?php
   }
}

function yacc_flowplayer_setup( $id, $width, $height, $stop_after, $ad ) { ?>
   <script>
      bufferingStopped['<?php echo $id; ?>'] = false;
      flowplayer("<?php echo $id; ?>", "<?php echo FLOWPLAYER_PLAYER_SWF; ?>", ({
         onLoad: function() {
         
         },
         clip: {
            autoPlay: true,
            autoBuffering: false,
            onStart: function() {<?php
               if( $stop_after > 0 ) { ?>
                  setTimeout( function() {
                     stopBuffering( '<?php echo $id; ?>' ) },
                     <?php echo $stop_after; ?>
                  );<?php
               } ?>
            }
         },
         plugins: {
            controls: {
               url: '<?php echo FLOWPLAYER_CONTROLS_SWF; ?>',
               autoHide: 'never',
               play: true,
               volume: true,
               mute: true,
               time: true,
               stop: true,
               fullscreen: true,
               scrubber: true
            }<?php if( $ad != '' ) : ?>,
            content: {
               url: '<?php echo FLOWPLAYER_CONTENT_SWF; ?>',
               top: 0,
               left: 0,
               height: 30,
               width: <?php echo $width; ?>,
               border: 0,
               borderRadius: 0,
               backgroundColor: '#000000',
               textAlign: 'center',
               style: {
                  '.ad': {
                     fontSize: 14,
                     fontFamily: 'verdana,arial,helvetica',
                     color: '#ffffff',
                     
                  },
                  '.ad-link': {
                     color: '#ffff33'
                  }
               },
               html: '<div class="ad"><?php echo str_replace( "'", '"', $ad ); ?></div>',
               onClick: function() {
                  
               }
            }<?php endif; ?>
         }
      }))      
   </script>
   
<?php
}

add_filter( 'media_send_to_editor', 'yacc_media_send_to_editor', 10, 2 );
function yacc_media_send_to_editor( $html, $id ) {
    $attachment = get_post( $id );
    $mime_type = $attachment->post_mime_type;
    if( substr( $mime_type, 0, 5 ) == 'video' ) {
      $meta = wp_get_attachment_metadata( $id );
      $html = '[flowplayer';
      $html .= ' video="' . $attachment->guid . '"';
      $html .= ' id="player-' . uniqid() . '"';
      $html .= ' width="' . $meta['width'] . '"';
      $html .= ' height="' . $meta['height'] . '"';
      $html .= ' stop_after="' . $meta['stop_after'] . '"';   
      $html .= ' image="' . $meta['image'] . '"';
      $html .= ' caption="' . $attachment->post_excerpt . '"';
      $html .= ' description="' . $attachment->post_content . '"';
      $html .= ' title="' . $attachment->post_title . '"';
      $html .= ' ad="' . $meta['ad'] . '"]';
    }   
   return $html;
}

add_filter('attachment_fields_to_edit', 'yacc_attachment_fields_to_edit', 10, 2 );
function yacc_attachment_fields_to_edit( $form_fields, $post ) {
    if ( substr( $post->post_mime_type, 0, 5 ) == 'video' ) {
      $meta = wp_get_attachment_metadata( $post->ID );      
      $form_fields['player_id']['label'] = 'Player ID';
        $form_fields['player_id']['value'] = 'player-' . uniqid();
      $form_fields['player_id']['class'] = 'text';      
      $form_fields['image']['label'] = 'Splash Image';
        $form_fields['image']['value'] = isset( $meta['image'] ) ? $meta['image'] : '';
      $form_fields['image']['class'] = 'text';      
      $form_fields['width']['label'] = 'Width';
        $form_fields['width']['value'] = isset( $meta['width'] ) ? $meta['width'] : '320';
      $form_fields['width']['class'] = 'text';      
      $form_fields['height']['label'] = 'Height';
        $form_fields['height']['value'] = isset( $meta['height'] ) ? $meta['height'] : '240';
      $form_fields['height']['class'] = 'text';      
      $form_fields['stop_after']['label'] = 'Stop after';
        $form_fields['stop_after']['value'] = isset( $meta['stop_after'] ) ? $meta['stop_after'] : '1000';
      $form_fields['stop_after']['class'] = 'text';      
      $form_fields['ad']['label'] = 'Ad';
        $form_fields['ad']['value'] = isset( $meta['ad'] ) ? $meta['ad'] : '';
      $form_fields['ad']['input'] = 'textarea';
      $form_fields['ad']['class'] = 'text';
    }
    return $form_fields;
}

add_filter( 'attachment_fields_to_save', 'yacc_attachment_fields_to_save', 10, 2 );
function yacc_attachment_fields_to_save( $post, $attachment ) {
    if ( substr( $post['post_mime_type'], 0, 5 ) == 'video' ) {
      $meta = wp_get_attachment_metadata( $post['ID'] );      
      $meta['player_id'] = $attachment['player_id'];
      $meta['width'] = $attachment['width'];
      $meta['height'] = $attachment['height'];
      $meta['stop_after'] = $attachment['stop_after'];
      $meta['image'] = $attachment['image'];
      $meta['ad'] = $attachment['ad'];      
      wp_update_attachment_metadata( $post['ID'],  $meta );
    }
    return $post;
}

В header.php в секцию head, желательно непосредственно перед вызовом wp_head(), добавляем:

<script>
   var bufferingStopped = new Object();
   function stopBuffering ( id ) {
      if( !bufferingStopped[id] ) {
         $f().stopBuffering();
         bufferingStopped[id] = true;
      }
   }
</script>


Теперь форма добавления видео выглядит так




  • Title, Description, Caption - Будут показаны только если указана картинка.
  • Link URL - Не используется.
  • Player ID - Уникальный ID. Вставляется автоматически.
  • Splash Image - Можно указать картинку.
  • Width - Ширина плеера в пикселях. По умолчанию 320.
  • Height - Высота плеера в пикселях. По умолчанию 240.
  • Stop after - Время в миллисекундах, по истечении которого воспроизведение будет остановлено. При этом изображение останется. Если не указано или равно 0 - значит auto play. Используется только если не указана картинка. По умолчанию 1000.
  • Ad - Реклама. Текст или HTML. Используйте одинарные кавычки!



Пара примеров.

Картинка, кнопка, описание:

[flowplayer video="http://example.com/wp-content/uploads/2011/05/N8inpasadena-Flowers457.flv" id="player-4dc423dedf5d7" image="http://example.com/wp-content/uploads/2011/05/70930.jpg" caption="Caption Caption" description="Description Description Description Description" title="Title Title"]




Первый кадр и реклама:

[flowplayer video="http://example.com/wp-content/uploads/2011/05/N8inpasadena-Flowers457.flv" id="player-4dc4267c57a54" stop_after="1000" ad="Visit this <a class='ad-link' href='/'>amazing site</a>!"]



Последний раз редактировалось: Yacc (31/05/11 в 09:07), всего редактировалось 1 раз
цитата
06/05/11 в 20:47
 Yacc
Vodafone писал:
это мне нужно скачать файл export.php?
...
уже достали эти оповещения icon_evil.gif как сделать так чтобы они не приходили?

Файл открыть в браузере.
Комментарии отключить нах. icon_smile.gif
цитата
06/05/11 в 21:40
 WorldTraffic
Yacc: вставил твой код который в посте выше, + скочал кнопку и положил ее в папку темы в flowplaer
и вот как получается
причем кнопка ведет на http://example.com/wp-content/uploads/2011/05/play_large.png

что нужно подправить?

п.с. все сделал как у тебя написано
цитата
06/05/11 в 21:52
 goodlover
Есть задачка про регистрацию/вход юзера. Нужно организовать всё это минуя внутренности (админку) вордпресса, то есть чтобы визуально юзер перекидывался не в админку при логине, а в нужное мне место, и чтобы при логине вверху страниц не появлялась панелька. Куда копать?
цитата
06/05/11 в 22:17
 Yacc
world-gay-sex: Так я не смогу тебе помочь. Дай ссылку хотя бы, а лучше доступ в админку. icon_smile.gif

goodlover: Убрать панель можно добавив в конец functions.php

Код:
add_filter( 'show_admin_bar', create_function('', 'return false;') );


или в style.css (ну или где там у тебя стили)

Код:
#wpadminbar { display: none; }
цитата
07/05/11 в 00:11
 WorldTraffic
спасибо Yacc:!
цитата
07/05/11 в 11:53
 banderas
может подскажешь как получить напечатанной permalink name (/%postname%/) т.е. то что при структуре линка в конце http://www.google.com/xoroshie-mashinki/

т.е. что бы выводил просто /xoroshie-mashinki/ текущей страницы.

для чего?

есть второй блог на русском с адресом http://www.google.com/ru/ и чтобы можно было ссылаться с каждой страницы английского на такую же русскую типа:
Код:
<a href="http://www.google.com/ru/<?php $leavename { echo '(%postname%)'; } ?>">RUS</a>

icon_smile.gif чисто для наглядности желаемого... icon_smile.gif
цитата
07/05/11 в 12:33
 Yacc
Код:
$u = explode( '/', $_SERVER['REQUEST_URI'] );
echo $u[count( $u ) - 2];
цитата
07/05/11 в 17:40
 banderas
Браво маэстро! smail54.gif
цитата
08/05/11 в 09:08
 Sergeyka
Подскажи плиз как открыть коменты?
Купил блог - коменты закрыты, в настройках Discussion Settings
все открыл, но на блоге все равно закрыта возможность комментирования, может где еще нужно поколупать?
цитата
08/05/11 в 09:18
 dDan
шаблон смотри просмотра поста
цитата
08/05/11 в 09:42
 Yacc
Комменты можно запрещать/разрешать не только для блога в целом, но и для отдельных постов. На странице редактирования поста, внизу есть секция Discussion.
Добавь, например в footer.php перед </body>

Код:
<?php
   query_posts('posts_per_page=-1');
   if( have_posts() ) {
      while( have_posts() ) {
         the_post();
         echo 'Comments '.( comments_open() ? 'open' : 'close' ).' - '.get_the_title().'<br/>';
      }
   }
?>

и получишь список всех постов и статус комментов в них.


Кроме того в теме могут быть и вовсе не предусмотрены комменты. В файле шаблона, выводящем одиночный пост (single.php или loop-single.php и т.п.), должен быть такой

Код:
<?php comments_template( '', true ); ?>

при этом в папке темы должен быть файл comments.php, который и выводит комменты и форму.

Или такой

Код:
<?php comments_template( '/blabla.php', true ); ?>

тогда в папке темы должен быть файл blabla.php
цитата
08/05/11 в 10:05
 Yacc
Открыть комменты во всех постах можно в phpmyadmin:

Код:
UPDATE `wp_posts` SET `comment_status`='open' WHERE `post_type`='post'

или добавить, например в footer.php

Код:
<?php
$wpdb->query("UPDATE $wpdb->posts SET comment_status = 'open' WHERE post_type = 'post'");
?>

и обновить страницу в браузере.

Если комменты надо открыть не только для постов, но и для страниц, аттачментов и постов кастомных типов, то предложение WHERE post_type = 'post' надо убрать.
цитата
08/05/11 в 11:01
 Sergeyka
Yacc:
Гениально!
вот это
<?php
$wpdb->query("UPDATE $wpdb->posts SET comment_status = 'open' WHERE post_type = 'post'");
?>

помогло!

Походу на уровне базы бал запрет коментов smail54.gif
цитата
08/05/11 в 11:03
 Vodafone
Yacc писал:
Файл открыть в браузере.
Комментарии отключить нах. icon_smile.gif


как в броузере открыть .php?

тоже думал отключить их нах!
цитата
08/05/11 в 11:23
 Yacc
Vodafone: Если ты про footer.php, то просто зайди на блог.
А если ты про экспорт постов, то в админке в секции Tools есть пункт Export. Или пройди по сылке ТвойДомен.com/wp-admin/export.php
цитата
08/05/11 в 11:26
 Yacc
Sergeyka писал:
вот это
<?php
$wpdb->query("UPDATE $wpdb->posts SET comment_status = 'open' WHERE post_type = 'post'");
?>

Если помогло, то этот код нужно убрать из футера.
цитата
08/05/11 в 12:01
 Sergeyka
т.е. использовать его разово?
цитата
08/05/11 в 12:21
 Newton
В сайдбаре выводит иерархический список родительских и дочерних категорий. Список отображается в алфавитном порядке. Как сделать что бы список родительских категорий сортировался не по алфавиту, а к примеры по id. Но при этом что бы сортировка дочерних категорий внутри родительских оставалась в алфавитном порядке?
цитата
08/05/11 в 13:46
 Yacc
Надо знать как в теме выводятся категории.

Вообще должен быть примерно такой

Код:
<ul>
<?php wp_list_categories(); ?>
</ul>

Надо сделать примерно такой

Код:
<ul>
<?php
$categotires = get_categories( 'hierarchical=false&orderby=id' );
foreach( $categotires as $category )
   wp_list_categories( 'child_of=' . $category->cat_ID );
?>
</ul>


Sergeyka: Поставил тебе двойку по английскому.
Там же написано UPDATE. Один раз UPDATE и хватит. icon_smile.gif
цитата
08/05/11 в 14:11
 Sergeyka
Yacc: Оффтопик: smail101.gif я типа самоучка по английскому icon_rolleyes.gif
цитата
09/05/11 в 12:35
 Newton
Yacc писал:
Надо знать как в теме выводятся категории.


Вот код ввывода:
Код:
case 'categories':
                        echo art_get_block( __('Categories', THEME_NS), '<ul>'.wp_list_categories('show_count=1&title_li=&echo=0').'</ul>');
break;


Твой код адаптировать под тему не смог(
цитата
09/05/11 в 13:31
 3Sky
Yacc: а ты за деньги работаешь? ) если да, стукни плиз - 32б2б8589, надо плагин в готовую тему интегрировать
Стр. « первая   <  6, 7, 8, 9, 10  >  последняя »


Эта страница в полной версии