Am creat răspunsuri în forum

Vizualizare 5 răspunsuri - 1 la 5 (din 5 în total)
  • Ba e bine în wp_postmeta. Trebuie să faci o solicitare de ştergere în baza de date.

    Uite de exemplu această solicitare ar trebui să şteargă metakey-ul „blabla” din postarea cu numărul 13.

    $wpdb->query("
    	DELETE FROM $wpdb->postmeta WHERE post_id = '13'
    	AND meta_key = 'blabla'");

    ai putea folosi ceva de genul

    $wpdb->query("
    	DELETE FROM $wpdb->postmeta WHERE meta_key = 'ratings_users'");

    Numai că asta îţi va şterge toate câmpurile personalizate denumite ratings_users. Nu numai dublurile.

    Alte exemple de solicitări în baza de data mai găseşti şi aici.

    Nu poţi să-l marchezi ca lipicios? Mergi la lista de articole, fă clic pe butonul „editare rapidă” de sub articolul pe care vrei să-l păstrezi pe prima pagină şi bifează opţiunea „Fă-l lipicios” sau „Make sticky”. Normal ar trebui să meargă.

    Inițiator fir de discuții smashmatic

    (@smashmatic)

    Uite codul cu care am rezolvat. Poate e de folos cuiva.

    <!-- INCEPUT INREGISTRARE DUBLURI -->
    <?php 
    
    $args = array(
    	'showposts'=> -1,
    	'order' => 'date'
    	);
    
    $do_not_duplicate=array();
    $myquery = new WP_Query($args);
      while ($myquery->have_posts()) : $myquery->the_post(); ?>
    
    <!--inceput stire-similara -->
    <?php $stirisimilare = get_post_meta($post->ID, "stirilatema", false); $args = array(
    	'post__in' => $stirisimilare,
    	'showposts'=> -1,
    	'order' => 'date'
    	);?>
       <?php if ($stirisimilare): ?>
       <?php $similare = new WP_Query($args);
      while ($similare->have_posts()) : $similare->the_post();
      $do_not_duplicate[] = get_the_ID(); ?>
        <?php endwhile; ?>
        <?php endif; ?>
    <!--sfarsit stire-similara -->
    <?php endwhile; ?>
    <!-- SFARSIT INREGISTRARE DUBLURI -->
    
    <?php wp_reset_query(); ?>
    
    <?php
    $args=array('post__not_in'=>$do_not_duplicate,
                'paged'=>$paged);
    $myquery = new WP_Query($args);
     if ($myquery->have_posts()) : ?>
    
    <?php while ($myquery->have_posts()) : $myquery->the_post();
     update_post_caches($posts); ?>
    
    // AICI VINE CODUL PENTRU ARTICOLELE OBISNUITE
    
    <!--inceput stire-similara -->
    
    <?php $stirisimilare = get_post_meta($post->ID, "stirilatema", false); $args = array(
    	'post__in' => $stirisimilare,
    	'showposts'=> -1,
    	'order' => 'date'
    	);?>
               <?php if ($stirisimilare): ?>
               <?php $similare = new WP_Query($args);
      while ($similare->have_posts()) : $similare->the_post();
      $do_not_duplicate[] = get_the_ID(); ?>
    
    // AICI VINE CODUL PENTRU STIRILE SIMILARE LA UN ARTICOL OBISNUIT
    
                                          <?php endwhile; ?>
                                          <?php endif; ?>
    <!-- inchidere stire-similara -->                               
    
    <?php endwhile; ?>
    <!-- inceput paginatie -->
    <?php posts_nav_link(); ?>
    <!-- inchidere paginatie --></div>
    
    <?php endif; ?>
    Forum: Probleme și soluții
    În răspuns la: Alte erori

    Eroarea apare în genere atunci când sunt spaţii în plus în fişierul wp-config.php (pe care îl accesezi mergând în public_html). E foarte strictă treaba asta cu spaţiile în plus. Dacă ai umblat de curând acolo, cam asta ar trebui să fie.

    Inițiator fir de discuții smashmatic

    (@smashmatic)

    Cred că ar fi fost prea mult de lucrat totuși am găsit o soluție. Mai băbească, dar e ok.

    De fapt care era problema? În practică aveam vroiam ca fiecare pagină dinamică de pe site (adică care nu e articol) să aibă 5 articole, dar numărătoarea să nu includă eventualele articole înrudite, care sunt eventual doar o anexă la unul din cele cinci articole principale. Problema apărea din cauza dublurilor. Foloseam <?php if (in_array(post->ID,$do_not_duplicate)) continue ?>, după cum
    scrie la carte, numai că deși dublura dispărea, contorul nu era resetat. Și mă trezeam cu patru postări sau chiar trei pe paginile cu unu și respectiv două articole înrudite. Dacă blocam Ciclul (The Loop) la 5 cu ajutorul unui contor (adică cât contorul e mai mic decât 6 ciclul se desfășoară, când ajunge la șase ss oprește) stricam paginația (ce am scris mai sus).

    În final am renunțat să folosesc comanda continue. În schimb am
    mai creat un ciclu care se comportă exact la fel ca primul, doar că rolul lui e doar să-mi umple un șir cu dublurile (este vorba de $do_not_duplicate[]). Ăsta l-am pus chiar la începutul paginii index.

    Apoi, ciclului principal i-am declarat argumentul 'post__not_in'=>$do_not_duplicate;.

    O să încerc mâine să pun codul simplificat aici, în caz că vor fi și alții care să aibă aceeași problemă cu mine.

Vizualizare 5 răspunsuri - 1 la 5 (din 5 în total)