• User

    Tema child functions.php

    Salve, dovrei inserire il seguente codice php in un file functions.php per il mio tema child
    ma probabilmente la sintassi è sbagliata quindi mi da un errore quando abilito il tema.
    Inizialmente lo misi nel functions.php genitore e funziona..... se inserisco il seguente codice in un file functions.php del tema child mi esce un errore.
    Ecco il codice:

    [PHP]
    //creo il post type per l'area riservata

    add_action('init', 'crea_contenuti');

    function crea_contenuti() {

    $labels = array(
    
    
        'name'               => __('Area Riservata'),
    
    
        'singular_name'      => __('Contenuto'),
    
    
        'add_new'            => __('Aggiungi Contenuto'),
    
    
        'add_new_item'       => __('Nuovo Contenuto'),
    
    
        'edit_item'          => __('Modifica Contenuto'),
    
    
        'new_item'           => __('Nuovo Contenuto'),
    
    
        'all_items'          => __('Elenco Contenuti'),
    
    
        'view_item'          => __('Visualizza Contenuti'),
        'search_items'       => __('Cerca Contenuto'),
    
    
        'not_found'          => __('Contenuto non trovato'),
    
    
        'not_found_in_trash' => __('Contenuto non trovato nel cestino'),
    
    
    );
    
    
    
    
    
    $args = array(
    
    
        'labels'             => $labels,
    
    
        'public'             => true,
    
    
        'rewrite'            => array('slug' => 'contenuti'),
    
    
        'has_archive'        => true,
    
    
        'hierarchical'       => false,
    
    
        'menu_position'      => 5,
    
    
        'supports'           => array(
    
    
                                'title',
    
    
                                'editor',
    
    
                                'thumbnail'
    
    
                                ),
    
    
    
    
    
    );
    

    register_post_type('area-riservata', $args);

    }
    //rendo il post type privato di default
    function force_type_private($post)
    {
    if ($post['post_type'] != 'area-riservata' || $post['post_status'] == 'trash')
    return $post;

    $post['post_status'] = 'private';
    return $post;
    

    }
    add_filter('wp_insert_post_data', 'force_type_private');

    //rendo il post privato visibile al ruolo sottoscrittore
    $subRole = get_role( 'subscriber' );
    $subRole->add_cap( 'read_private_posts' );
    // Rimuovo Privato dal titolo
    function clean_title($titolo) {
    $titolo = attribute_escape($titolo);
    $cerca = array(
    '#Privato:#'
    );
    $sostituisci = array(
    '-' // Sostituiamo la voce "Privato" con
    );
    $titolo = preg_replace($cerca, $sostituisci, $titolo);
    return $titolo;
    }
    add_filter('the_title', 'clean_title');
    //nascondo la barra di wordpress tranne che all' admin
    if (!current_user_can('manage_options')) {
    add_filter('show_admin_bar', '__return_false');
    }
    if (!current_user_can('edit_posts')) {
    add_filter('show_admin_bar', '__return_false');
    }[/PHP]


  • Moderatore

    Sarebbe di aiuto sapere che tipo di errore ti da!


  • User

    Grazie... semmai riprovo ad inserirlo...ma mi sembra che apparisse il codice del file (il codice sopra) sulla testata della pagina...come se non fosse inserito bene in una pagina php ...ma semmai riprovo e posto l'errore


  • Moderatore

    Se leggi il codice, il problema puo soltanto essere 1.
    prima di inserire il codice ricordati di aprire il tag <?php


  • User

    In effetti avevo provato mettendo tag di apertura ma anche tag di chiusura ma niente....ma ho notato ora che il functions.php genitore non ha tag di chiusura........quindi ora provo con solo apertura
    grazie


  • User

    ora ho aggiunto al file
    [PHP]<?php
    add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );function enqueue_parent_theme_style() { wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );}[/PHP]

    senza tag di chiusura e non appare nessun errore

    grazie 1000
    ciao


  • User

    Riprendo il Topic in quanto riprendendo ultimamente in mano il sito mi sono accorto che l 'errore non lo dava semplicemente perché avevo nominato il file FUNCTION invece di FUNCTIONS.

    L'errore che mi da ora che ho corretto il nome del file è

    [PHP]Parse error: syntax error, unexpected '}' in /web/htdocs/sito.com/home/wordpress/wp-content/themes/twentythirteen-child/functions.php on line 125[/PHP]

    sicuramente un errore di sintassi ma dove? alla riga 125 non c'è niente subito dopo c'e' [PHP]$args = array(
    [/PHP]grazie

    riporto il codice:

    [PHP]
    <?php

    //creo il post type per l'area riservata

    add_action('init', 'crea_contenuti');

    if(!function_exists('crea_contenuti')) {
    function crea_contenuti() {
    return true;
    }
    }

    $labels = array(
    
    
    
        'name'               => __('Area Riservata'),
    
    
    
        'singular_name'      => __('Contenuto'),
    
    
    
        'add_new'            => __('Aggiungi Contenuto'),
    
    
    
        'add_new_item'       => __('Nuovo Contenuto'),
    
    
    
        'edit_item'          => __('Modifica Contenuto'),
    
    
    
        'new_item'           => __('Nuovo Contenuto'),
    
    
    
        'all_items'          => __('Elenco Contenuti'),
    
    
    
        'view_item'          => __('Visualizza Contenuti'),
    
        'search_items'       => __('Cerca Contenuto'),
    
    
    
        'not_found'          => __('Contenuto non trovato'),
    
    
    
        'not_found_in_trash' => __('Contenuto non trovato nel cestino'),
    
    
    
    );
    
    
    
    
    $args = array(
    
    
    
        'labels'             => $labels,
    
    
    
        'public'             => true,
    
    
    
        'rewrite'            => array('slug' => 'contenuti'),
    
    
    
        'has_archive'        => true,
    
    
    
        'hierarchical'       => false,
    
    
    
        'menu_position'      => 5,
    
    
    
        'supports'           => array(
    
    
    
                                'title',
    
    
    
                                'editor',
    
    
    
                                'thumbnail'
    
    
    
                                ),
    
    
    
    
    );
    

    register_post_type('area-riservata', $args);

    }

    //rendo il post type privato di default

    function force_type_private($post)

    {

    if ($post['post_type'] != 'area-riservata' || $post['post_status'] == 'trash')
    
        return $post;
    
    
    
    $post['post_status'] = 'private';
    
    return $post;
    

    }

    add_filter('wp_insert_post_data', 'force_type_private');

    //rendo il post privato visibile al ruolo sottoscrittore

    $subRole = get_role( 'subscriber' );

    $subRole->add_cap( 'read_private_posts' );

    // Rimuovo Privato dal titolo

    function clean_title($titolo) {

    $titolo = attribute_escape($titolo);
    
    $cerca = array(
    
        '#Privato:#'
    
    );
    
    $sostituisci = array(
    
        '-' // Sostituiamo la voce "Privato" con
    
    );
    
    $titolo = preg_replace($cerca, $sostituisci, $titolo);
    
    return $titolo;
    

    }

    add_filter('the_title', 'clean_title');

    //nascondo la barra di wordpress tranne che all' admin

    if (!current_user_can('manage_options')) {

    add_filter('show_admin_bar', '__return_false');
    

    }

    if (!current_user_can('edit_posts')) {

    add_filter('show_admin_bar', '__return_false');
    

    }[/PHP]


  • Moderatore

    C'è una graffa '}' di chiusura di troppo


  • User

    Ciao e grazie!!
    Ho provato eliminando la graffa di chiusura

    ora è tutto Ok sembra
    grazie 1000