Editare single post wp si autopublish pe social?

Ozzy

Member
Registered
Full Member
Salut, doresc sa va intreb daca se poate face in felul urmator: Intr-un post oarecare de pe un blog oarecare (ruleaza wordpress) sa se faca automat Recomandat sau Vezi si: (titlu articol) si cand dai click pe "titlu articol" sa redirectioneze acolo (dar sa faca aleatoriu pentru fiecare categorie in parte).

Si al doilea lucru este daca odata ce public un articol sa fie automat distribuit pe reddit/facebook/g+/twitter/etc... (daca exista plugin sa faca asta singur)
 
Pentru chestiile simple eu recomand sa nu se foloseaca pluginuri ci sa se integreze in thema.
Related posts e usor de integrat chiar si pentru incepatori.

PHP:
<?php
global $post;
$categories = get_the_category($post->ID);
if ($categories) {
    $category_ids = array();
    foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;

$related_args=array(
  'category__in' => $category_ids,
  'post__not_in' => array($post->ID),
  'posts_per_page'=> 5, //numarul de posturi de afisat
  'orderby'=>'rand'    );

$related_posts = new WP_Query( $related_args );
  if( $related_posts->have_posts() ) {
            _e( 'Similar posts', 'wpmt' );
          while( $related_posts->have_posts() ) { $related_posts->the_post(); ?>
            <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
<?php
    }
} else {
$random_args = array(
  'posts_per_page' => 5, //numarul de posturi de afisat
  'orderby'=>'rand');
  
$random_posts = new WP_Query( $random_args );
    if( $random_posts->have_posts() ) {
        _e( 'Random posts', 'wpmt' );
            while( $random_posts->have_posts() ) { $random_posts->the_post(); ?>
               <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
         <?php
         }
      }
  }
}

wp_reset_query(); ?>

Codul de mai sus afiseaza 5 posturi din aceiasi categorie.
Daca nu sunt posturi in aceiasi categorie afiseaza 5 posturi random.
Daca o sa cautati pe net o sa gasiti si cum se afiseaza related posts in functie de tag-uri, dar cum nu se mai prea folosesc tag-uri recomand metoda asta.

Cat despre autoshare.. se gasesc destule pluginuri. Unele mai bune, altele nu prea..
Eu am folosit SNAP si Social Auto Poster, dar ca si randament nu se compara cu postarea manuala.

Jetpack nu l-am mai incercat de peste 1 an pentru ca mi se parea aiurea. Nu stiu daca a mai fost imbunatatit intre timp.
In plus am vazut ca destul de multi developeri se feresc sa foloseasca lui.
 
Ultima editare:
Related posts e usor de integrat chiar si pentru incepatori.
El doreste sa-i apara in articol aceste posturi relevante.
Daca poti face un code pentru asa ceva si apoi folosit ca short code in postare si adminul sa aleaga unde sa apara articolele relevante.
 
Eu am inteles ca se referea la related posts care apar la sfarsitul articolului. Codul de mai sus fix asta face :)
 
Codul de mai sus fix asta face
Stiu ce face.
De asta ti-am recomandat sa faci unul pentru cele din interior la articol.
Exemple poti vedea pe orice site de stiri pentru a te inspira.
Ca implementare se poate face usor.
1. faci codul care adaugat intr-un folder in root
2. adaugat linie de code in header sau single cu include sau javascript
3. userul foloseste short code in articole pentru a include posturi relevante
exemplu shortcode:
[relevant]1[/relevant] - articole din aceiasi categorie
[relevant]2[/relevant] - articole in functie de tag si titlu
[relevant]3[/relevant] - articole random

In functie de varianta aleasa, codul tau sa stie ce va afisa.

Daca e posibil sa faci cache la db pentru afisare mai rapida si sa nu execute interogare si scanare db la fiecare afisare ca ar ridica load destul de mult.
 
In principiu e destul de simplu "sa te joci" cu codul postat de mine mai sus.
related posts ca shortcode
PHP:
function related_post_wpmt($atts) {
  extract( shortcode_atts( array(
  'post_nr' => 3, // numar de posturi default
  'order' => 'DESC',
  'orderby' => 'rand',
  ), $atts ) );

  global $post;
  $categories = get_the_category($post->ID);
  if ($categories) {
      $category_ids = array();
      foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;

  $related_args=array(
    'category__in' => $category_ids,
    'post__not_in' => array($post->ID),
    'posts_per_page'=> $post_nr, //numarul de posturi de afisat
    'order' => $order,
    'orderby' => $orderby
  );

  $related_posts = new WP_Query( $related_args );
    if( $related_posts->have_posts() ) {
              _e( 'Similar posts', 'wpmt' );
            while( $related_posts->have_posts() ) { $related_posts->the_post();
              $r_posts .= '
      <a href="'.get_permalink().'">'.get_the_title().'</a>
  ';
      }
  } else { $r_posts .= 'No related posts'; }
     return $r_posts;
  }
  wp_reset_query();
}
add_shortcode('related', 'related_post_wpmt');

[related] - va afisa numarul default de posturi related (3 in cazult de fata)
[related post_nr="5"] - adaugand parametrul post_nr poti selecta numarul de articole afisate
 
Ultima editare:
In principiu e destul de simplu "sa te joci" cu codul postat de mine mai sus.
Unde va trebui inserat codul facut de tine?
Si se poate scoate numarul de postari si pune in functie de categorie, titlu + tag, sau random.
Pentru ca adminul poate adauga shortcodul de ma multe ori in articol.
 
Am modificat un pic codul sa mai poti pune si parametru de sortare.

Codul se adauga in functions.php.
Codul de mai sus afiseaza posturi din aceisi categorie.
exemple:
[related] - va afisa RANDOM 3 posturi related
[related post_nr="5"] - va afisa RANDOM 5 posturi related
[related orderby="date" post_nr="4"] - va afisa in functie de data DESCRESCTOR (adica ultimele articole postate) 4 articole related
[related orderby="date" order="ASC" post_nr="4"] - va afisa in functie de data CRESCATOR (adica primele articole postate) 4 articole related
 
Codul se adauga in functions.php.
La multi le este frica sa faca editari in functions.php
Poti spune unde ar trebui adaugat in acest fisier? Inceput, final, mijloc, dupa o anumita linie, etc. Fiecare thema este diferita.
Nu poti face cu metoda de mai sus recomandata, unde codul se adauga intr-un fisier separat in root si apoi inclus in thema cu include sau java script.
In felul acesta nu ar include editarea functions.php care ar putea duce la probleme pentru unii.
 
Poate fi adaugat oriunde in functions.
Nu ai ce sa strici. In principiu il poti adauga la final ca sa fi sigur ca nu il amesteci cu altceva.
 
In principiu il poti adauga la final ca sa fi sigur ca nu il amestecu cu altceva.
Perfect. Asata voiam sa aud.
Multumesc pentru codul oferit.
 
Loading...
Back
Sus