• Как вывести каждый объект в цикле в уникальный контейнер?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Вы ведь не собираетесь вставлять N блоков с одинаковым id?))
    Зачем вам N скриптов?

    Цикл начался
    <div class="artist" data-container="artist" data-title="<?php echo urlencode($title);?>">...</div>
    Цикл закончился
    <script>
    var $Artist = function () {
    	var url = 'http://ws.audioscrobbler.com/2.0/',
    		options = {
    			method: 'artist.getinfo',
    			api_key: '2b35547bd5675d8ecb2b911ee9901f59',
    			format: 'json'
    		};
    
    	$('[data-container="artist"]').each(function () {
    		var $item = $(this);
    
    		$.ajax({
    			url: url + '?' + $.param(options) + '&artist=' + $item.data('title'),
    			success: function(data) {
    				$item.append($('<img>').attr('src', data.artist.image[2]['#text']));
    			}
    		})
    	});
    }();
    </script>
    Ответ написан
  • Как сделать запрос wpdb, а затем привязать его к циклу?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Есть у WP вот такая штука, pre_get_posts:
    function my_modify_main_query( $query ) {
         $query->query_vars['posts_per_page'] = 5; // вносим изменения в запрос, таких строчек может быть много.
    }
    add_action( ‘pre_get_posts’, ‘my_modify_main_query’ );

    Что делает: изменяет параметры основного запроса в БД до того, как он будет выполнен. Таким образом, полученные результаты будут доступны через стандартный wordpress loop - не нужно будет писать лишний код, да и темы вручную тюнить.
    Ответ написан
    6 комментариев
  • Как сделать запрос wpdb, а затем привязать его к циклу?

    Может вам подойдёт другой способ. Запрашиваем нужные посты и уже у них проверяем первая буква "а" или нет.

    Если нужно найти в постах определённую фразу, то у wp_query есть параметр поиска.
    //Посты найденные по поисковой фразе.
    $query = new WP_Query( 's=keyword' );


    У вас ошибка the_permalink() и the_title() без аргумента сразу выводят ссылку и заголовок, echo лишнее.
    // заместо проверки на пустоту, лучше 
    // привести к целому числу 
    // $_GET['page'] = 'не_число'
    if ( isset($_GET['page']) && !empty($_GET['page']) )  // true
    if( isset($_GET['page']) && absint($_GET['page']) )   // false


    Пример с wp_query
    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $offset = 0;
    
    if( isset($_GET['page']) && absint($_GET['page']) )
    		$offset =  ($_GET['page']-1) * 100; 
    
    $args = array(
    	 'post_type' => 'artist' // тип поста
    	,'post_status' => 'publish' // статус поста опубликованный
    	,'paged' => $paged // страница пагинации
    	,'offset' => 0 // сколько постов из результатов запроса пропустить.
    	,'order' => 'ASC' // сортируем по порядку, от меньшего к большему (1, 2, 3; a, b, c).
    	,'orderby' => 'title' // по заголовку поста
    );
    $query = new WP_Query( $args );	
    
    while ($query->have_posts()) : $query->the_post();
      $var = wp_get_post_terms( $post->ID, 'bands' );
      $slug = $var[0]->slug;
      $terms = get_terms('bands', 'slug=' . $slug . '');
    
      foreach ($terms as $term) : 
    	$t_count = $term->count;
    ?>
    	<li>
    	  <a href="<?php the_permalink();?>" title="<?php the_title();?>">
    	  	<?php the_title();?>
    	  </a>
    	  <span class="text-right"><?php echo $t_count ;?></span>
    	</li>
    <?php 
    	endforeach;		
    endwhile; 
    wp_reset_postdata(); 
    pagination($additional_loop->max_num_pages); //функция пагинации
    ?>

    Посты могут выводится не по порядку, если установлены плагины для создания пользовательских выводов постов.
    Ответ написан
  • Как имитировать клик по элементу на JQuery?

    cha-cha
    @cha-cha
    trigger("click") на самом деле просто стреляет клик-эвент.
    Используйте .click().

    $('#new a')[0].click();
    Ответ написан
    3 комментария
  • Как сделать чтобы при вставке значения, первое из дублирующихся значений вставлялось, а все последующие обновлялись?

    @bobzer
    Java EE Developer
    1. Можно попробовать триггеры с вашей специфической логикой: создаёте триггер на insert/update в таблицу, а внутри него крутите любую бизнес-логику. Если СУБД развернута на более-менее приличных серверах, то 1-10 млн. операций в сутки пройдет без перенапряжения.

    2. Делать работу в коде - открыли транзакцию, и на вашем ЯП читаете/вставляете/обновляете записи в БД, по окончании завершаете транзакцию. Нагрузка чуть больше, чем в п.п. 1, но при грамотном "общении" с СУБД тоже не так уж и велика.

    3. Разбираетесь, почему у вас дубликаты в БД, читаете мануалы по нормализации данных в СУБД, просите проанализировать структуру спецов. После один раз напрягаетесь чтобы сделать нормальную структуру БД, зато потом работаете с БД "правильно" а не путем применения специфических функций (выходящих за рамки стандарта SQL 2008 (обычно хватает стандарта 92-го года))...

    Вот триггер:
    CREATE TRIGGER wc_terms_unique_slug
    BEFORE INSERT ON wc_terms FOR EACH ROW
    BEGIN
    declare
    countDoubles int;
    
    select count(*) into @countDoubles from wc_terms
        where slug = NEW.slug or slug REGEXP CONCAT('(^', NEW.slug, ')([\-])([0-9]+)$');
    if(@countDoubles > 0) then
        SET NEW.slug = CONCAT_WS('-', NEW.slug, @countDoubles + 1);
    end if;
    
    END;

    После его создания делаете обычные insert-ы (без ON DUPLICATE KEY)
    Ответ написан
    6 комментариев