Der Code wird einfach in die functions.php im Attitude Child-Theme angewendet. Eine externe footer-extensions.php, wird dann im Child-Theme nicht benötigt.
Beiträge von christian.w.
-
-
Ich habe die Lösung für das Problem!
PHP
Alles anzeigen// Entfernt den alten Copyright Text im Footer add_action( 'init' , 'mh_remove_copy' , 15 ); function mh_remove_copy() { remove_action( 'attitude_footer', 'attitude_footer_info', 30 ); } // Fügt den neuen Copyright Text im Footer wieder hinzu add_action( 'attitude_footer' , 'mh_footer_info' , 30 ); function mh_footer_info() { $output = '<div class="copyright">'.__( 'Copyright ©', 'attitude' ).' '.'[the-year] [site-link]'.', meiner eigener zusätzlicher Text oder Code</div><!-- .copyright -->'; echo do_shortcode( $output ); } -
zu b: ich habe jetzt mal nur die beiden Datein ins Child Theme kopiert, ohne functions.
Es tut sich nichts, Änderungen werden nicht übernommen. (Als Erinnerung: Wenn ich die Änderungen in den beiden Dateien im Parent Theme vornehme, funktionieren diese einwandfrei. Es liegt also nicht an den Änderungen.)zu a: aber mit dem was ich vor habe, möchte ich doch eine Funktion aus dem Parent verändern? oder ist das nur auf die functions bezogen? meine "add_filter" Funktion aus der functions im Child, funktioniert ja.
-
Danke für die Links. Ich hoffe, ich habe es richtig verstanden.
Habe jetzt die beiden Dateien (footer-extensions.php und header-extensions.php) ins Hauptverzeichnis
des Child Themes gespeichert und die beiden Dateien per "include" in die functions.php geschrieben.meine function.php aus dem Child-Theme sieht nun so aus:
PHP
Alles anzeigen<?php // Hide Incorrect Login Reason add_filter('login_errors',create_function('$a', "return null;")); include '/footer-extensions.php'; include '/header-extensions.php'; ?>Ich bekomme jetzt zumindest keine weiße Seite mehr, jedoch tut sich nichts.
Es wird immernoch der Code der beiden Dateien aus dem Parent Theme verwendet.Was mache ich falsch?
Wie bereits erwähnt, sind meine PHP-Kentnisse leider noch nicht so gut.
Ich verstehe i.d.R. den Aufbau von fertigen Scripten, aber fürs selber schreiben, reicht es nicht. -
Hat denn keiner eine Idee, wie ich das ganze umsetzen könnte?
Meine functions.php im Child-Theme sieht mittlerweile so aus:
PHP
Alles anzeigen<?php // Hide Incorrect Login Reason add_filter('login_errors',create_function('$a', "return null;")); add_action( 'attitude_init', 'attitude_constants', 10 ); // defines the Attitude theme constants function attitude_constants() { define( 'ATTITUDE_LIBRARY_DIR', ATTITUDE_PARENT_DIR. 'attitude-child/library' ); define( 'ATTITUDE_STRUCTURE_DIR', ATTITUDE_LIBRARY_DIR . 'attitude-child/library/structure' ); //Define URL Location Constants define( 'ATTITUDE_LIBRARY_URL', ATTITUDE_PARENT_URL . 'attitude-child/library' ); define( 'ATTITUDE_STRUCTURE_URL', ATTITUDE_LIBRARY_URL . 'attitude-child/library/structure' ); } add_action( 'attitude_init', 'attitude_load_files', 15 ); // Loading the included files function attitude_load_files() { do_action( 'attitude_add_files' ); require_once( ATTITUDE_STRUCTURE_DIR . '/header-extensions.php' ); require_once( ATTITUDE_STRUCTURE_DIR . '/footer-extensions.php' ); } ?>Die zusätzlich eingebaute Filterfunktion in der 4. Zeile funktioniert einwandfrei.
Mit dem Rest, bekomme ich immer eine weiße Seite.
Ich habe mir die Zeilen von der originalen functions.php aus dem Parent-Theme kopiert und nur die Pfade hinzugefügt (z.B. attitude-child/) -
Hallo,
ich habe für ein kleines Projekt eine Seite mit dem "Attitude" Theme erstellt.
Am Theme habe ich nur wenige CSS-Änderungen vorgenommen und den "footer" geändert.Ich habe für das Theme ein Child-Theme erstellt. Die CSS-Änderungen in der
style.css im Child Theme funktionieren wunderbar. Leider bekomme ich es nicht zum laufen,
dass der footer über das Child Theme läuft. Meine PHP-Kentnisse sind leider nur begrenzt.Also: Ich habe im Parent-Theme "Attitude" die functions.php, in der auf die "library/structure/footer-extensions.php" verwiesen wird. Nehme ich da meine Änderungen in der "footer-extensions" vor, funktionieren diese
logischerweise. Nun möchte ich das ganze ja über das Child-Theme laufen lassen.Habe nun im Child-Theme die Ordner-Struktur "library/structure/" mit meiner geänderten "footer-extensions.php" darin. Im Hauptverzeichnis des Child-Theme habe ich nun eine leere functions.php erstellt.
Was muss ich in die functions.php eintragen, dass die footer-extensions.php aus dem Child-Theme verwendet wird?
Habe schon unzählige eigene Versuche gemacht. Es hat allerdings jedes mal in einem PHP-Error geendet...
Hier der Inhalt der originalen functions.php aus dem Parent-Theme:
(In der 98. Zeile wird auf die footer-extensions.php verwiesen und ein paar Zeilen
darüber, durch das Verzeichnis navigiert)PHP
Alles anzeigen<?php /** * Attitude defining constants, adding files and WordPress core functionality. * * Defining some constants, loading all the required files and Adding some core functionality. * @uses add_theme_support() To add support for post thumbnails and automatic feed links. * @uses register_nav_menu() To add support for navigation menu. * @uses set_post_thumbnail_size() To set a custom post thumbnail size. * * @package Theme Horse * @subpackage Attitude * @since Attitude 1.0 */ /** * Set the content width based on the theme's design and stylesheet. */ if ( ! isset( $content_width ) ) $content_width = 700; add_action( 'attitude_init', 'attitude_constants', 10 ); /** * This function defines the Attitude theme constants * * @since 1.0 */ function attitude_constants() { /** Define Directory Location Constants */ define( 'ATTITUDE_PARENT_DIR', get_template_directory() ); define( 'ATTITUDE_CHILD_DIR', get_stylesheet_directory() ); define( 'ATTITUDE_IMAGES_DIR', ATTITUDE_PARENT_DIR . '/images' ); define( 'ATTITUDE_LIBRARY_DIR', ATTITUDE_PARENT_DIR. '/library' ); define( 'ATTITUDE_ADMIN_DIR', ATTITUDE_LIBRARY_DIR . '/admin' ); define( 'ATTITUDE_ADMIN_IMAGES_DIR', ATTITUDE_ADMIN_DIR . '/images' ); define( 'ATTITUDE_ADMIN_JS_DIR', ATTITUDE_ADMIN_DIR . '/js' ); define( 'ATTITUDE_ADMIN_CSS_DIR', ATTITUDE_ADMIN_DIR . '/css' ); define( 'ATTITUDE_JS_DIR', ATTITUDE_LIBRARY_DIR . '/js' ); define( 'ATTITUDE_CSS_DIR', ATTITUDE_LIBRARY_DIR . '/css' ); define( 'ATTITUDE_FUNCTIONS_DIR', ATTITUDE_LIBRARY_DIR . '/functions' ); define( 'ATTITUDE_SHORTCODES_DIR', ATTITUDE_LIBRARY_DIR . '/shortcodes' ); define( 'ATTITUDE_STRUCTURE_DIR', ATTITUDE_LIBRARY_DIR . '/structure' ); if ( ! defined( 'ATTITUDE_LANGUAGES_DIR' ) ) /** So we can define with a child theme */ define( 'ATTITUDE_LANGUAGES_DIR', ATTITUDE_LIBRARY_DIR . '/languages' ); define( 'ATTITUDE_WIDGETS_DIR', ATTITUDE_LIBRARY_DIR . '/widgets' ); /** Define URL Location Constants */ define( 'ATTITUDE_PARENT_URL', get_template_directory_uri() ); define( 'ATTITUDE_CHILD_URL', get_stylesheet_directory_uri() ); define( 'ATTITUDE_IMAGES_URL', ATTITUDE_PARENT_URL . '/images' ); define( 'ATTITUDE_LIBRARY_URL', ATTITUDE_PARENT_URL . '/library' ); define( 'ATTITUDE_ADMIN_URL', ATTITUDE_LIBRARY_URL . '/admin' ); define( 'ATTITUDE_ADMIN_IMAGES_URL', ATTITUDE_ADMIN_URL . '/images' ); define( 'ATTITUDE_ADMIN_JS_URL', ATTITUDE_ADMIN_URL . '/js' ); define( 'ATTITUDE_ADMIN_CSS_URL', ATTITUDE_ADMIN_URL . '/css' ); define( 'ATTITUDE_JS_URL', ATTITUDE_LIBRARY_URL . '/js' ); define( 'ATTITUDE_CSS_URL', ATTITUDE_LIBRARY_URL . '/css' ); define( 'ATTITUDE_FUNCTIONS_URL', ATTITUDE_LIBRARY_URL . '/functions' ); define( 'ATTITUDE_SHORTCODES_URL', ATTITUDE_LIBRARY_URL . '/shortcodes' ); define( 'ATTITUDE_STRUCTURE_URL', ATTITUDE_LIBRARY_URL . '/structure' ); if ( ! defined( 'ATTITUDE_LANGUAGES_URL' ) ) /** So we can predefine to child theme */ define( 'ATTITUDE_LANGUAGES_URL', ATTITUDE_LIBRARY_URL . '/languages' ); define( 'ATTITUDE_WIDGETS_URL', ATTITUDE_LIBRARY_URL . '/widgets' ); } add_action( 'attitude_init', 'attitude_load_files', 15 ); /** * Loading the included files. * * @since 1.0 */ function attitude_load_files() { /** * attitude_add_files hook * * Adding other addtional files if needed. */ do_action( 'attitude_add_files' ); /** Load functions */ require_once( ATTITUDE_FUNCTIONS_DIR . '/i18n.php' ); require_once( ATTITUDE_FUNCTIONS_DIR . '/custom-header.php' ); require_once( ATTITUDE_FUNCTIONS_DIR . '/functions.php' ); require_once( ATTITUDE_ADMIN_DIR . '/attitude-themeoptions-defaults.php' ); require_once( ATTITUDE_ADMIN_DIR . '/theme-options.php' ); require_once( ATTITUDE_ADMIN_DIR . '/attitude-metaboxes.php' ); require_once( ATTITUDE_ADMIN_DIR . '/attitude-show-post-id.php' ); /** Load Shortcodes */ require_once( ATTITUDE_SHORTCODES_DIR . '/attitude-shortcodes.php' ); /** Load Structure */ require_once( ATTITUDE_STRUCTURE_DIR . '/header-extensions.php' ); require_once( ATTITUDE_STRUCTURE_DIR . '/searchform-extensions.php' ); require_once( ATTITUDE_STRUCTURE_DIR . '/sidebar-extensions.php' ); require_once( ATTITUDE_STRUCTURE_DIR . '/footer-extensions.php' ); require_once( ATTITUDE_STRUCTURE_DIR . '/content-extensions.php' ); /** Load Widgets and Widgetized Area */ require_once( ATTITUDE_WIDGETS_DIR . '/attitude_widgets.php' ); } add_action( 'attitude_init', 'attitude_core_functionality', 20 ); /** * Adding the core functionality of WordPess. * * @since 1.0 */ function attitude_core_functionality() { /** * attitude_add_functionality hook * * Adding other addtional functionality if needed. */ do_action( 'attitude_add_functionality' ); // Add default posts and comments RSS feed links to head add_theme_support( 'automatic-feed-links' ); // This theme uses Featured Images (also known as post thumbnails) for per-post/per-page. add_theme_support( 'post-thumbnails' ); // Remove WordPress version from header for security concern remove_action( 'wp_head', 'wp_generator' ); // This theme uses wp_nav_menu() in header menu location. register_nav_menu( 'primary', __( 'Primary Menu', 'attitude' ) ); // Add Attitude custom image sizes add_image_size( 'featured', 670, 300, true ); add_image_size( 'featured-medium', 230, 230, true ); add_image_size( 'slider-narrow', 1038, 460, true ); // used on Featured Slider on Homepage Header for narrow layout add_image_size( 'slider-wide', 1400, 460, true ); // used on Featured Slider on Homepage Header for wide layout add_image_size( 'gallery', 474, 342, true ); // used to show gallery all images add_image_size( 'icon', 80, 80, true ); //used for icon on business layout /** * This theme supports custom background color and image */ add_theme_support( 'custom-background' ); } /** * attitude_init hook * * Hooking some functions of functions.php file to this action hook. */ do_action( 'attitude_init' ); ?>