Création de shortcode sur WordPress

Aujourd’hui nous allons voir comment créer un shortcode sous WordPress.

 

Tout d’abord nous allons ouvrir le fichier « functions.php » situé dans le theme wordpress .

Il suffira ensuite de rentrer le code suivant :


//Encadrement d'un contenu entre deux balises
function nom_de_la_fonction_shorcode_encadrement($atts, $content = null)
{
    return '<div>' . do_shortcode($content) . '</div>'; 
}

//Affichage d'un contenu
function nom_de_la_fonction_shorcode_encadrement($atts, $content = null) 
{ 
	//Le contenu 
}



//Appel Shortcodes 
add_shortcode('nom_shortcode', 'nom_de_la_fonction_shorcode_encadrement');
add_shortcode('nom_shortcode', 'nom_de_la_fonction_shorcode_contenu');
functions.php

 

Voila pour la création « simple » de shortcode.

 

 

 

Réécriture d’URL // URL Rewriting

Quelques mots sur la réécriture d’url.

La réécriture d’url ca sert à quoi?

Cela sert à ce qu’à la place d’avoir un lien comme
www.dsqjk.fr/page.php?123
on ait
www.dsqjk.fr/ma-page    .

Il suffit pour cela de mettre dans le répertoire où ce trouve la page un fichier .htaccess     (généralement déjà présent).

Ensuite on intégrera ces options

Options +FollowSymlinks
RewriteEngine On

Et on écrit nos règles

RewriteRule ^ma-page/$ page.php?123
RewriteRule ^ma-seconde-page/$ page.php?1341

Après le « ^ » on aura le début du lien créé et le $ terminera .
Ensuite , un espace, et le lien actuel.

Dorénavant lorsque l’on ira sur le lien www.dsqjk.fr/ma-page on tombera sur le contenu de www.dsqjk.fr/page.php?123 avec le lien www.dsqjk.fr/ma-page dans la barre d’url.

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^ma-page/$ page.php?123
RewriteRule ^ma-seconde-page/$ page.php?1341
.htaccess

Création de Métabox sur un Custom Post WordPress

Aujourd’hui nous allons voir comment créer une MétaBox sous WordPress:

On ouvre notre fichier function.php présent dans notre thèmes /

On y ajoute :

Création de la fonction

 

function bidouilleweb_add_meta_box() {    //Nom de la fonction
add_meta_box(
'bidouilleweb',   //Le nom de ma meta
__( 'Bidouille du Web', 'bidouilleweb' ),   //Le titre de ma meta
'bidouilleweb',
'mon-post-plug',    //Le Slug de mon Custom-Post
'side',    //Placement dans mon panel (Coté)
'high'   //En haut
);
}
Création de la fonction Custom Post

Affichage de la Métabox et enregistrement des données

add_action( 'add_meta_boxes', 'bidouilleweb_add_meta_box' );
function bidouilleweb( $post) {
wp_nonce_field( '_bidouilleweb_nonce', 'bidouilleweb_nonce' ); ?>

<p>
<label for="bidouilleweb"><?php _e( 'Bidouille du Web', 'bidouilleweb' ); ?></label><br>
<input type="text" name="bidouilleweb" id="bidouilleweb" value="<?php echo bidouilleweb_get_meta( 'bidouilleweb' ); ?>">
</p>

<?php
}

functionbidouilleweb_save( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! isset( $_POST['bidouilleweb_nonce'] ) || ! wp_verify_nonce( $_POST['bidouilleweb_nonce'], '_bidouilleweb_nonce' ) ) return;
if ( ! current_user_can( 'edit_post', $post_id ) ) return;

if ( isset( $_POST['bidouilleweb'] ) )
update_post_meta( $post_id, 'pdf_oeuvre_lien', esc_attr( $_POST['bidouilleweb'] ) );
}
add_action( 'save_post', 'bidouilleweb_save' );

?>
Affichage du Custom Post

Pour vérifier la présence de données dans les méta je vous invite à suivre ce lien

 

 

Vérifier une donnée en PHP et la cacher/afficher

Un petit billet pour parler de la vérification de données en php .(et pour faire suite à ce billet..)

Je cherchais à ce que , suite à la création de Métabox dans wordpress, si l’une de celle-ci n’était pas remplie, cela me cache complètement la ligne de mon tableau.

On récupère les données insérées dans les metabox d’articles et on les met dans des variables.

 

<?php

$li3 = get_post_meta( $wp_query->post->ID , "menu2_titre", true);
$li4 = get_post_meta( $wp_query->post->ID , "menu3_titre", true);
$li5 = get_post_meta( $wp_query->post->ID , "menu4_titre", true);
$li6 = get_post_meta( $wp_query->post->ID , "menu5_titre", true);
?>

On affiche nos données et on ajoute une class « hide » qui va d’office cacher les ligne du tableau.

<section class="site-main-content-footer">
<ul id="menu-footer-page-post">

<li id="li-2" class="menu-footer hide"><?php echo $li2; ?></li>
<li id="li-3" class="menu-footer hide"><?php echo $li3; ?></li>
<li id="li-4" class="menu-footer hide"><?php echo $li4; ?></li>
<li id="li-5" class="menu-footer hide"><?php echo $li5; ?></li>
<li id="li-6" class="menu-footer hide"><?php echo $li6; ?></li>
</ul>

</section>
<style>
.hide{
display:none;
}
</style>

 

Et on ajoute un peu de jQuery pour vérifier tout ça.

 

<script type="text/javascript">
jQuery(document).ready(function(){
var li2 = "<?php echo $li2; ?>";
var li3 = "<?php echo $li3; ?>";
var li4 = "<?php echo $li4; ?>";
var li5 = "<?php echo $li5; ?>";
var li6 = "<?php echo $li6; ?>";
var n1 = li1.length;
var n2 = li2.length;
var n3 = li3.length;
var n4 = li4.length;
var n5 = li5.length;
var n6 = li6.length;
if (n2 === 0) {
}
else {
jQuery('#li-2').removeClass('hide');
}
if (n3 === 0) {
}
else {
jQuery('#li-3').removeClass('hide');
}
if (n4 === 0) {
}
else {
jQuery('#li-4').removeClass('hide');
}
if (n5 === 0) {
}
else {
jQuery('#li-5').removeClass('hide');
}
if (n6 === 0) {
}
else {
jQuery('#li-6').removeClass('hide');
}
});
</script>

Explications : 

var li2 = "<?php echo $li2; ?>";
On insere $li2 dans li2...

 
var n2 = li2.length;
On créer une variable n2 et celle ci contiendra la longueur de la variable l2 (bonjour = 7 lettres)

 

if (n2 === 0) {
}
else {
jQuery('#li-2').removeClass('hide');
}

Si n2 est égal à 0 (Donc valeur vide ou nulle) il ne se passe rien (sachant que le ligne est cachée par la class « hide » d’office. Sinon la class « hide » est supprimée de l’id li-2.
 

Voilà j’espère que cela vous aura aidé !

Sauvegardes automatiques de WordPress et migration

Il n’y a rien de plus important que de sauvegarder son wordpress,un piratage , une page blanche ou bien une erreur de manipulation et c’est là que l’on se rend compte que l’on a bien fait de faire des sauvegardes.

 

1| Sauvegardes quotidiennes  & gratuite !

 

En solution gratuite j’utilise personnellement un plugin nommé « UpdraftPlus Backup and Restoration« .
Il me permet d’automatiser une sauvegarde quotidienne ainsi que de les envoyer ( chose rare..) vers un ftp de backup.
il permet aussi de choisir le nombre de sauvegardes stockées sur le FTP ainsi que le serveur.
Sauvegardes par Updraft

2| Un bug?! on migre une sauvegarde en local !

Il arrive d’avoir un bug de wordpress et que l’on soit bloqué car le site est actif et ne peux pas être mis hors ligne .

Par là je parle du fameux problème de la page blanche .

En effet il est arrivé que le front-office fonctionne parfaitement mais que l’accès au wp-admin mène à une page blanche..

Que faire ?

Heureusement mon updraft est en fonctionnement et j’ai pu récupérer mes sauvegardes de la veille ainsi que des jours précédents .

Malheureusement updraft ne permet ( en version gratuite ) que de restaurer sur le même nom de domaine , sous peine de ne plus avoir accès au panel.

C’est pourquoi il nous faudra procéder en plusieurs étapes.

D’abord on créait un wordpress en local sur lamp, mamp, xamp…

Ensuite sur ce même wordpress vierge on installe le plugin updraftPlus.

On continu en copiant les sauvegardes updraft dans le dossier /wp-content/updraft/ et on restaure à partir du plugin.

Et c’est là qu’intervient un très bon tutoriel que je vous invite à lire nous expliquant comment changer le nom de domaine à partir de notre base de donnée .

http://sql.sh/988-requetes-migrer-wordpress

On se connecte à notre base et on entre dans l’onglet SQL

UPDATE wp_options
SET option_value = replace(option_value, 'http://anciennomdedomaine.fr', 'http://nouveaunomdedomaine.fr')

WHERE option_name = 'home'

OR option_name = 'siteurl';

UPDATE wp_posts
SET guid = REPLACE (guid, 'http://anciennomdedomaine.fr', 'http://nouveaunomdedomaine.fr');

UPDATE wp_posts

SET post_content = REPLACE (post_content, 'http://anciennomdedomaine.fr', 'http://nouveaunomdedomaine.fr');

UPDATE wp_postmeta

SET meta_value = REPLACE (meta_value, 'http://anciennomdedomaine.fr','http://nouveaunomdedomaine.fr');
Mise jour des URL

Évidement http://anciennomdedomaine.fr est à modifier par le nom de base du site et http://nouveaunomdedomaine.fr par l’adresse locale.

Pour ma part sur MAMP, le nom local se construit comme ceci : http://localhost:8888/NomDuSite/.

À partir de là vous pouvez faire vos modifications en local sur une sauvegarde .

3| Migrer ou Cloner facilement wordpress

Pour migrer ou cloner une wordpress de manière ponctuelle j’utilise un plugin nommé Duplicator.

Il permet ultra-simplement de migrer son wordpress vers n’importe quel nom de domaine .

Il suffit de créer sa sauvegarde qui se composera dans fichier Zip et d’un index.php.

Duplicator plugin wordpress

Il suffira de mettre ces deux fichiers dans le dossier prévu pour le site et d’afficher la page index. (HTTP://localhost:8888/Site/index.php)

C’est à ce moment qu’on accédera au panel qui nous permettra notamment de creer une base ou bien d’en choisir une et d’écraser son contenu.

Duplicator configuration

Vous voilà donc prêt pour migrer, cloner, sauvegarder et réparer !

Tagged , , , , , ,