Viewing 15 replies - 1 through 15 (of 19 total)
  • Ok I am working on it check back later on i will resolve your problem with in 24 hours… ?? cheers

    The same problem here:
    Fatal error: Cannot redeclare add_term_meta() (previously declared in /…/wp-includes/taxonomy.php:1571) in /…/wp-content/themes/legenda/framework/inc/taxonomy-metadata.php on line 101

    Can you help to fix please?

    Paste your file or code here let me help you to solve

    <?php
    /*
    Plugin Name: Taxonomy Metadata
    Description: Infrastructure plugin which implements metadata functionality for taxonomy terms, including for tags and categories.
    Version: 0.4
    Author: mitcho (Michael Yoshitaka Erlewine), sirzooro
    Author URI: https://mitcho.com/
    */

    class Taxonomy_Metadata {
    function __construct() {
    add_action( ‘init’, array($this, ‘wpdbfix’) );
    add_action( ‘switch_blog’, array($this, ‘wpdbfix’) );
    add_action(‘wpmu_new_blog’, array($this, ‘new_blog’), 10, 6);
    }

    /*
    * Quick touchup to wpdb
    */
    function wpdbfix() {
    global $wpdb;
    $wpdb->taxonomymeta = “{$wpdb->prefix}taxonomymeta”;
    }

    /*
    * TABLE MANAGEMENT
    */

    function activate( $network_wide = false ) {
    global $wpdb;

    // if activated on a particular blog, just set it up there.
    if ( !$network_wide ) {
    $this->setup_blog();
    return;
    }

    $blogs = $wpdb->get_col( “SELECT blog_id FROM {$wpdb->blogs} WHERE site_id = ‘{$wpdb->siteid}'” );
    foreach ( $blogs as $blog_id ) {
    $this->setup_blog( $blog_id );
    }
    // I feel dirty… this line smells like perl.
    do {} while ( restore_current_blog() );
    }

    function setup_blog( $id = false ) {
    global $wpdb;

    if ( $id !== false)
    switch_to_blog( $id );

    $charset_collate = ”;
    if ( ! empty($wpdb->charset) )
    $charset_collate = “DEFAULT CHARACTER SET $wpdb->charset”;
    if ( ! empty($wpdb->collate) )
    $charset_collate .= ” COLLATE $wpdb->collate”;
    $tables = $wpdb->get_results(“show tables like ‘{$wpdb->prefix}taxonomymeta'”);
    if (!count($tables)) {
    $wpdb->query(“CREATE TABLE {$wpdb->prefix}taxonomymeta (
    meta_id bigint(20) unsigned NOT NULL auto_increment,
    taxonomy_id bigint(20) unsigned NOT NULL default ‘0’,
    meta_key varchar(255) default NULL,
    meta_value longtext,
    PRIMARY KEY (meta_id),
    KEY taxonomy_id (taxonomy_id),
    KEY meta_key (meta_key)
    ) $charset_collate;”);
    }
    }

    function new_blog( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {
    if ( is_plugin_active_for_network(plugin_basename(__FILE__)) )
    $this->setup_blog($blog_id);
    }
    }
    $taxonomy_metadata = new Taxonomy_Metadata;
    //register_activation_hook( __FILE__, array($taxonomy_metadata, ‘activate’) );

    add_action(‘init’, array($taxonomy_metadata, ‘activate’));

    // THE REST OF THIS CODE IS FROM https://core.trac.www.ads-software.com/ticket/10142
    // BY sirzooro

    //
    // Taxonomy meta functions
    //

    /**
    * Add meta data field to a term.
    *
    * @param int $term_id Post ID.
    * @param string $key Metadata name.
    * @param mixed $value Metadata value.
    * @param bool $unique Optional, default is false. Whether the same key should not be added.
    * @return bool False for failure. True for success.
    */

    function add_term_meta($term_id, $meta_key, $meta_value, $unique = false) {
    return add_metadata(‘taxonomy’, $term_id, $meta_key, $meta_value, $unique);
    }

    /**
    * Remove metadata matching criteria from a term.
    *
    * You can match based on the key, or key and value. Removing based on key and
    * value, will keep from removing duplicate metadata with the same key. It also
    * allows removing all metadata matching key, if needed.
    *
    * @param int $term_id term ID
    * @param string $meta_key Metadata name.
    * @param mixed $meta_value Optional. Metadata value.
    * @return bool False for failure. True for success.
    */

    function delete_term_meta($term_id, $meta_key, $meta_value = ”) {
    return delete_metadata(‘taxonomy’, $term_id, $meta_key, $meta_value);
    }

    /**
    * Retrieve term meta field for a term.
    *
    * @param int $term_id Term ID.
    * @param string $key The meta key to retrieve.
    * @param bool $single Whether to return a single value.
    * @return mixed Will be an array if $single is false. Will be value of meta data field if $single
    * is true.
    */
    function get_term_meta($term_id, $key, $single = false) {
    return get_metadata(‘taxonomy’, $term_id, $key, $single);
    }

    /**
    * Update term meta field based on term ID.
    *
    * Use the $prev_value parameter to differentiate between meta fields with the
    * same key and term ID.
    *
    * If the meta field for the term does not exist, it will be added.
    *
    * @param int $term_id Term ID.
    * @param string $key Metadata key.
    * @param mixed $value Metadata value.
    * @param mixed $prev_value Optional. Previous value to check before removing.
    * @return bool False on failure, true if success.
    */
    function update_term_meta($term_id, $meta_key, $meta_value, $prev_value = ”) {
    return update_metadata(‘taxonomy’, $term_id, $meta_key, $meta_value, $prev_value);
    }

    <?php
    /*
    Plugin Name: Taxonomy Metadata
    Description: Infrastructure plugin which implements metadata functionality for taxonomy terms, including for tags and categories.
    Version: 0.4
    Author: mitcho (Michael Yoshitaka Erlewine), sirzooro
    Author URI: https://mitcho.com/
    */

    class Taxonomy_Metadata {
    function __construct() {
    add_action( ‘init’, array($this, ‘wpdbfix’) );
    add_action( ‘switch_blog’, array($this, ‘wpdbfix’) );
    add_action(‘wpmu_new_blog’, array($this, ‘new_blog’), 10, 6);
    }

    /*
    * Quick touchup to wpdb
    */
    function wpdbfix() {
    global $wpdb;
    $wpdb->taxonomymeta = “{$wpdb->prefix}taxonomymeta”;
    }

    /*
    * TABLE MANAGEMENT
    */

    function activate( $network_wide = false ) {
    global $wpdb;

    // if activated on a particular blog, just set it up there.
    if ( !$network_wide ) {
    $this->setup_blog();
    return;
    }

    $blogs = $wpdb->get_col( “SELECT blog_id FROM {$wpdb->blogs} WHERE site_id = ‘{$wpdb->siteid}'” );
    foreach ( $blogs as $blog_id ) {
    $this->setup_blog( $blog_id );
    }
    // I feel dirty… this line smells like perl.
    do {} while ( restore_current_blog() );
    }

    function setup_blog( $id = false ) {
    global $wpdb;

    if ( $id !== false)
    switch_to_blog( $id );

    $charset_collate = ”;
    if ( ! empty($wpdb->charset) )
    $charset_collate = “DEFAULT CHARACTER SET $wpdb->charset”;
    if ( ! empty($wpdb->collate) )
    $charset_collate .= ” COLLATE $wpdb->collate”;
    $tables = $wpdb->get_results(“show tables like ‘{$wpdb->prefix}taxonomymeta'”);
    if (!count($tables)) {
    $wpdb->query(“CREATE TABLE {$wpdb->prefix}taxonomymeta (
    meta_id bigint(20) unsigned NOT NULL auto_increment,
    taxonomy_id bigint(20) unsigned NOT NULL default ‘0’,
    meta_key varchar(255) default NULL,
    meta_value longtext,
    PRIMARY KEY (meta_id),
    KEY taxonomy_id (taxonomy_id),
    KEY meta_key (meta_key)
    ) $charset_collate;”);
    }
    }

    function new_blog( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {
    if ( is_plugin_active_for_network(plugin_basename(__FILE__)) )
    $this->setup_blog($blog_id);
    }
    }
    $taxonomy_metadata = new Taxonomy_Metadata;
    //register_activation_hook( __FILE__, array($taxonomy_metadata, ‘activate’) );

    add_action(‘init’, array($taxonomy_metadata, ‘activate’));

    // THE REST OF THIS CODE IS FROM https://core.trac.www.ads-software.com/ticket/10142
    // BY sirzooro

    //
    // Taxonomy meta functions
    //

    /**
    * Add meta data field to a term.
    *
    * @param int $term_id Post ID.
    * @param string $key Metadata name.
    * @param mixed $value Metadata value.
    * @param bool $unique Optional, default is false. Whether the same key should not be added.
    * @return bool False for failure. True for success.
    */

    function add_term_meta($term_id, $meta_key, $meta_value, $unique = false) {
    return add_metadata(‘taxonomy’, $term_id, $meta_key, $meta_value, $unique);
    }

    /**
    * Remove metadata matching criteria from a term.
    *
    * You can match based on the key, or key and value. Removing based on key and
    * value, will keep from removing duplicate metadata with the same key. It also
    * allows removing all metadata matching key, if needed.
    *
    * @param int $term_id term ID
    * @param string $meta_key Metadata name.
    * @param mixed $meta_value Optional. Metadata value.
    * @return bool False for failure. True for success.
    */

    function delete_term_meta($term_id, $meta_key, $meta_value = ”) {
    return delete_metadata(‘taxonomy’, $term_id, $meta_key, $meta_value);
    }

    /**
    * Retrieve term meta field for a term.
    *
    * @param int $term_id Term ID.
    * @param string $key The meta key to retrieve.
    * @param bool $single Whether to return a single value.
    * @return mixed Will be an array if $single is false. Will be value of meta data field if $single
    * is true.
    */

    if(!function_exists(‘get_term_meta’)){
    // my_function is defined
    function get_term_meta($term_id, $key, $single = false) {
    return get_metadata(‘taxonomy’, $term_id, $key, $single);
    }
    }

    /**
    * Update term meta field based on term ID.
    *
    * Use the $prev_value parameter to differentiate between meta fields with the
    * same key and term ID.
    *
    * If the meta field for the term does not exist, it will be added.
    *
    * @param int $term_id Term ID.
    * @param string $key Metadata key.
    * @param mixed $value Metadata value.
    * @param mixed $prev_value Optional. Previous value to check before removing.
    * @return bool False on failure, true if success.
    */
    function update_term_meta($term_id, $meta_key, $meta_value, $prev_value = ”) {
    return update_metadata(‘taxonomy’, $term_id, $meta_key, $meta_value, $prev_value);
    }

    Meanwhile I have changed to back-up but will try to fix with your solution.

    Thanks and best regards,
    nofelet

    I will let you know!

    What is your website ?

    Hello, I also have a fatal error for the taxonomy widget at line 97. I have tried your fix and am still coming up with the same fatal error on line 97.

    I have solved my own problem. Taxonomy has release an update to their code. replaced the file and all is well. Thanks!

    They uploaded a new release but if you have some problem about this error then check this solve. [ Redacted, these forums are not for sharing your link to your site. ]

    <?php
    /*
    Plugin Name: Taxonomy Metadata
    Description: Infrastructure plugin which implements metadata functionality for taxonomy terms, including for tags and categories.
    Version: 0.4
    Author: mitcho (Michael Yoshitaka Erlewine), sirzooro
    Author URI: https://mitcho.com/
    */
    
    class Taxonomy_Metadata {
    function __construct() {
    add_action( 'init', array($this, 'wpdbfix') );
    add_action( 'switch_blog', array($this, 'wpdbfix') );
    add_action('wpmu_new_blog', array($this, 'new_blog'), 10, 6);
    }
    
    /*
    * Quick touchup to wpdb
    */
    function wpdbfix() {
    global $wpdb;
    $wpdb->taxonomymeta = "{$wpdb->prefix}taxonomymeta";
    }
    
    /*
    * TABLE MANAGEMENT
    */
    
    function activate( $network_wide = false ) {
    global $wpdb;
    
    // if activated on a particular blog, just set it up there.
    if ( !$network_wide ) {
    $this->setup_blog();
    return;
    }
    
    $blogs = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}'" );
    foreach ( $blogs as $blog_id ) {
    $this->setup_blog( $blog_id );
    }
    // I feel dirty... this line smells like perl.
    do {} while ( restore_current_blog() );
    }
    
    function setup_blog( $id = false ) {
    global $wpdb;
    
    if ( $id !== false)
    switch_to_blog( $id );
    
    $charset_collate = '';
    if ( ! empty($wpdb->charset) )
    $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
    if ( ! empty($wpdb->collate) )
    $charset_collate .= " COLLATE $wpdb->collate";
    $tables = $wpdb->get_results("show tables like '{$wpdb->prefix}taxonomymeta'");
    if (!count($tables)) {
    $wpdb->query("CREATE TABLE {$wpdb->prefix}taxonomymeta (
    meta_id bigint(20) unsigned NOT NULL auto_increment,
    taxonomy_id bigint(20) unsigned NOT NULL default '0',
    meta_key varchar(255) default NULL,
    meta_value longtext,
    PRIMARY KEY (meta_id),
    KEY taxonomy_id (taxonomy_id),
    KEY meta_key (meta_key)
    ) $charset_collate;");
    }
    }
    
    function new_blog( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {
    if ( is_plugin_active_for_network(plugin_basename(__FILE__)) )
    $this->setup_blog($blog_id);
    }
    }
    $taxonomy_metadata = new Taxonomy_Metadata;
    //register_activation_hook( __FILE__, array($taxonomy_metadata, 'activate') );
    
    add_action('init', array($taxonomy_metadata, 'activate'));
    
    // THE REST OF THIS CODE IS FROM https://core.trac.www.ads-software.com/ticket/10142
    // BY sirzooro
    
    //
    // Taxonomy meta functions
    //
    
    /**
    * Add meta data field to a term.
    *
    * @param int $term_id Post ID.
    * @param string $key Metadata name.
    * @param mixed $value Metadata value.
    * @param bool $unique Optional, default is false. Whether the same key should not be added.
    * @return bool False for failure. True for success.
    */
    if(!function_exists('add_term_meta')){
    function add_term_meta($term_id, $meta_key, $meta_value, $unique = false) {
    return add_metadata('taxonomy', $term_id, $meta_key, $meta_value, $unique);
    }
    }
    
    /**
    * Remove metadata matching criteria from a term.
    *
    * You can match based on the key, or key and value. Removing based on key and
    * value, will keep from removing duplicate metadata with the same key. It also
    * allows removing all metadata matching key, if needed.
    *
    * @param int $term_id term ID
    * @param string $meta_key Metadata name.
    * @param mixed $meta_value Optional. Metadata value.
    * @return bool False for failure. True for success.
    */
    
    function delete_term_meta($term_id, $meta_key, $meta_value = '') {
    return delete_metadata('taxonomy', $term_id, $meta_key, $meta_value);
    }
    
    /**
    * Retrieve term meta field for a term.
    *
    * @param int $term_id Term ID.
    * @param string $key The meta key to retrieve.
    * @param bool $single Whether to return a single value.
    * @return mixed Will be an array if $single is false. Will be value of meta data field if $single
    * is true.
    */
    
    if(!function_exists('get_term_meta')){
    // my_function is defined
    function get_term_meta($term_id, $key, $single = false) {
    return get_metadata('taxonomy', $term_id, $key, $single);
    }
    }
    
    /**
    * Update term meta field based on term ID.
    *
    * Use the $prev_value parameter to differentiate between meta fields with the
    * same key and term ID.
    *
    * If the meta field for the term does not exist, it will be added.
    *
    * @param int $term_id Term ID.
    * @param string $key Metadata key.
    * @param mixed $value Metadata value.
    * @param mixed $prev_value Optional. Previous value to check before removing.
    * @return bool False on failure, true if success.
    */
    function update_term_meta($term_id, $meta_key, $meta_value, $prev_value = '') {
    return update_metadata('taxonomy', $term_id, $meta_key, $meta_value, $prev_value);
    }

    Here is the server error

    mod_fcgid: stderr: PHP Fatal error: Cannot redeclare add_term_meta() (previously declared in /wordpress/wp-includes/taxonomy.php:1577) in /wordpress/wp-content/plugins/taxonomy-metadata/taxonomy-metadata.php on line 95

    Hi Jeff, how did you solve your taxonomy problem?

    I have tried Altaf’s way and still receive the same fatal error problem.

    Hello Isaac, I downloaded the updated files and manually updated the server file. Once I did that I was able to get the site back up. Once I did that I ran the update for taxonomy. I am out at the moment, but when I’m back I can provide more details.

    Hey Jeff, thanks for your feedback. Looking forward for your details.

Viewing 15 replies - 1 through 15 (of 19 total)
  • The topic ‘PHP fatal error on WP update to 4.4’ is closed to new replies.