webentwicklung-frage-antwort-db.com.de

Kopiere eine Datei von einem Plugin in mein Theme-Verzeichnis

Ich habe ein WordPress-Plugin mit PHP's 'copy ()' codiert, um eine Datei aus meinem Plugin-Verzeichnis in mein Theme-Verzeichnis zu kopieren, aber es funktioniert nicht:

<?
function file_replace() {

    $plugin_dir = plugin_dir_path( __FILE__ ) . '/library/front-page.php';
    $theme_dir = get_stylesheet_directory() . 'front-page.php';
    copy($plugin_dir, $theme_dir);

    if (!copy($plugin_dir, $theme_dir)) {
    echo "failed to copy $plugin_dir to $theme_dir...\n";
    }
}

add_action( 'wp_head', 'file_replace' );

Ich dachte, ich sollte vielleicht ! $wp_filesystem->put_contents() verwenden, bin mir aber nicht ganz sicher, wie ich das machen soll oder ob das überhaupt der richtige Weg wäre. Irgendwelche Ideen, wie man am besten eine Datei von einem Plugin in ein Theme-Verzeichnis kopiert?

Vielen Dank

3
Rizzo

Um Ihre Frage zu beantworten, haben Sie die Pfade falsch angegeben: plugin_dir_path( __FILE__ ) hat bereits einen abschließenden Schrägstrich am Ende (zwei abschließende Schrägstriche sollten kein Problem darstellen, aber sicherer ist, einen zu haben) und get_stylesheet_directory() hat am Ende keinen abschließenden Schrägstrich. Sie müssen also eine hinzufügen, bevor Sie den Dateinamen hinzufügen. Ihr endgültiger Code sollte so aussehen:

<?php
function file_replace() {

    $plugin_dir = plugin_dir_path( __FILE__ ) . 'library/front-page.php';
    $theme_dir = get_stylesheet_directory() . '/front-page.php';

    if (!copy($plugin_dir, $theme_dir)) {
        echo "failed to copy $plugin_dir to $theme_dir...\n";
    }
}

add_action( 'wp_head', 'file_replace' );
3