WordPress : Supprimer une page publiée spécifique lorsque le thème est désactivé

Publié par Jean-Michel le

Je travaille sur le développement d’un thème qui crée automatiquement une page sur l’activation du thème. Mais le problème si lorsque le thème est activé et activé à nouveau, il recrée la page.
est-il possible de vérifier si la page est déjà disponible/publiée, de ne pas créer ou peut-être de supprimer la page lors du changement de thème/de la désactivation ?
Voici le code que j’utilise pour créer une nouvelle page sur l’activation du thème :

if (is_admin() && isset($_GET['activated'] ) && $pagenow == "themes.php" ) {

global $wpdb;

    $the_page_title = 'Homepage Template';
    $the_page_name = 'homepage-1';
//$page_check = get_page_by_title('Page Title');
$page_check_id = $page_check->ID;
   $the_page = get_page_by_title( $the_page_title );

        // Create post object
    $new_page = array(
'post_type' => 'page',
'post_title' => 'Homepage Template',
'post_status' => 'publish',
'post_author' => 1,

);
if(!isset($page_check_id)){
wp_insert_post($new_page);
$new_page_data = get_page_by_title($the_page_title);
$new_page_id = $new_page_data->ID;
update_post_meta($new_page_id, '_wp_page_template','homepage-1.php');
}
}

Mon objectif principal est d’offrir aux utilisateurs plusieurs modèles/mises en page de page d’accueil qu’ils peuvent basculer à partir du panneau d’administration du thème ou des paramètres -> lecture. Donc, s’il y a une meilleure option, n’hésitez pas à suggérer !

Solution n°1 trouvée

Vous appelez get_page_by_title( $page_title )déjà. Utilise le!

if ( ! get_page_by_title(
    _x( 'Homepage Template', 'home page title', 'your_theme_textdomain' )
    )
)
{
    // create the page
}

Ne supprimez pas le contenu de l’utilisateur lors de la désactivation du thème. L’utilisateur a peut-être mis beaucoup d’énergie dans cette page, et peut-être qu’il n’est pas au courant que vous supprimez son travail.

Mais je ne créerais même pas cette page. Utilisez un home.phppour les articles de blog les plus récents et un front-page.phppour la page d’accueil. Personnalisez cela et laissez l’utilisateur choisir n’importe quelle page.

Maintenant, lorsque vos utilisateurs renomment la page et essaient un autre thème avant de revenir en arrière, vous n’avez plus besoin de recréer la page avec juste un titre différent.


Mise à jour en réponse à votre question mise à jour

Créez les modèles de la page d’accueil dans un répertoire séparé, par exemple /front-templates. Proposez ensuite ces modèles en tant que choix dans le personnalisateur et enregistrez le nom du modèle dans les options de thème.

Dans votre front-page.phpchèque pour l’option et incluez le modèle correspondant.

Exemple de code

$template = get_theme_mod( 'front-page-template', 'default' );

locate_template( "front-templates/$template.php", TRUE, TRUE );

Maintenant, vous n’avez plus besoin de créer une nouvelle page, car front-page.phpelle sera automatiquement utilisée sur la page d’accueil.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *