the fly on the net 
Davide Bia

Davide si occupa principalmente di consulenza informatica ed assistenza tecnica per alcune aziende nella provincia di Verona.
Ha sempre coltivato la passione per la programmazione, e fin dal 1994 sviluppa siti web e librerie JavaScript.



Aggiungere nel tema di Wordpress un link per creare articoli e pagine

 Scritto da Davide Bia in PHP 30 settembre 2008 

Come per il famoso link “Edit this”, tradotto normalmente in “Modifica”, può essere comodo inserire nel proprio tema un link per scrivere un nuovo articolo o una nuova pagina.

Per quanto riguarda gli articoli la soluzione è semplice, e si risolve con qualche linea di codice.

if(current_user_can('publish_posts'))
  echo '<a href="'.get_bloginfo('wpurl').'/wp-admin/post-new.php">'.__('Write article').'</a>';

Per quanto riguarda invece le pagine, può essere interessante utilizzare un codice più complesso, per aggiungere una nuova pagina che abbia la corrente come pagina madre. Per fare ciò è necessario creare una pagina vuota utilizzando la funzione wp_insert_post, passando il parametro post_parent che deve corrispondere all’ID della pagina corrente, quindi redirigere l’utente al back-end.

if(current_user_can('publish_pages'))
{
  $post_parent = $post->ID;
  if($_GET['publish_subpage'])
  {
    $newpost = array(
      'post_content' => '<p>&nbsp;</p>',
      'post_parent' => $post_parent,
      'post_status' => 'draft',
      'post_title' => '',
      'post_type' => 'page'
    );
    $newpost_ID = wp_insert_post($newpost);
    if($newpost_ID)
      header('Location: '.get_bloginfo('wpurl').'/wp-admin/page.php?action=edit&post='.$newpost_ID);
    else header('Location: '.get_permalink($post->ID));
  }
  else
  {
    $publish_link = get_permalink($post->ID);
    if(strpos('?', $publish_link))
      echo '<a href="'.$publish_link.'&amp;publish_subpage=yes">'.__('Write page').'</a>';
    else echo '<a href="'.$publish_link.'?publish_subpage=yes">'.__('Write page').'</a>';
  }
}

Questa soluzione prevede la creazione di un link che richiama la stessa pagina con in aggiunta il parametro publish_subpage=yes.

Lascia un commento