• Beste lezers,

    Ik heb een heel raar probleem. Wie o wie kan mij helpen? Het gaat om een cronjob op een webser waar php 5.3.10 op geinstalleerd staat. het gaat hier om een affiliate script van tradetracker met het WOWWAY wordpres theme.

    De cronjob

    <?php
    
    // set time limit
    set_time_limit (3000);
    
    // enable error messages PHP
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    // default
    require_once('xxx\wp-load.php');
    
    // wp_create_catagory()
    require_once('xxx\wp-admin\includes\taxonomy.php');
    
    // get_category_by_slug()
    require_once('xxx\wp-includes\category.php'); 
    
    // add_post_meta()
    require_once('xxx\wp-includes\post.php'); 
    
    // attach_image
    require_once('xxx\wp-admin\includes\image.php');
    
    // functions
    require_once('xxx\jobit-functions.php');
    
    // delete all posts
    $deletePosts = array(
    					'post_type' => 'portfolio',
    					'numberposts' => 5000,
    					'post_status' => 'publish',
    				 );
    $posts = get_posts( $deletePosts );
    foreach($posts as $post){
    	//$id = get_the_ID();
    	wp_delete_post($post->ID, true);
    }
    
    // delete all unattached items out of media library
    $unattachedmediaargs = array(
       'post_type' => 'attachment',
        'numberposts' => 5000
    );
    
    $unattachedmedia = get_posts($unattachedmediaargs);
    if ($unattachedmedia) {
    	foreach ($unattachedmedia as $unattached) {
    		wp_delete_attachment( $unattached->ID, true );
    		echo "Just deleted media attachment ".$unattached->ID." <br>"; // uncomment this line to see whats going on..
    	}
    }
    
    // get the data from the XML
    $list = new SimpleXMLElement('http://pf.tradetracker.net/?aid=86958&type=xml&encoding=utf-8&fid=253448&limit=25&r=goeikoop&categoryType=2&additionalType=2', null, true);
    
    foreach($list->product as $items){
    
    	// define category
    	$category = $items->categories->category[0];
    
    	// check if category exists
    	// check category is an array
    	$checkCategory = get_term_by('slug', $category, 'portfolio_category');
    
    	if ($checkCategory->name == ''){
    		$categoryArray = array('cat_name' => $category, 'category_nicename' => $category, 'taxonomy' => 'portfolio_category' );
    		wp_insert_category($categoryArray);
    
    	}
    	// create the content
    	$name = $items->name;
    	$price = $items->price;
    
    	// affiliate URL
    	$productURL = $items->productURL;
    		$productURL = w3c_urlfixed($productURL);
    
    	$imageURL = $items->imageURL;
    		$imageURL = w3c_urlfixed($imageURL);
    
    	$description = $items->description;
    
    	//additional content
    	$brand_and_type = $items->additional->field[0];
    	$delivery_time = $items->additional->field[1];
    
    	//create content
    	$content = "";
    
    	//get the correct catagory
    	//check category is an array
    	$term_id = $checkCategory->term_id;
    	echo $category. '<br />';
    
    	// make the post
    	$post = array(
    		'post_content' => $description,
    		'post_name' => $name,
    		'post_status' => 'publish',
    		'post_title' => $name,
    		'post_type' => 'portfolio',
    		'tax_input' => array('portfolio_category' => array($term_id))
    	);  
    
    	$post_id = wp_insert_post($post);
    }

    Als ik dit script uitvoer vanuit een webbrowser wat niet draait op de webserver werkt het prima. Draai ik dit script vanuit de webserver dan ziet ie op een of andere manier de catagories niet. Heeft iemand enig idee waar de fout zit.

    Mocht je meer informatie nodig hebben let me know.

    Bedankt voor je tijd en moeite

1 reactie aan het bekijken (van in totaal 1)
  • wpprogrammeurs.nl

    (@wordpressprogrammeursnl)

    Probeer eens wat data op het scherm te laten zetten. Met de volgende aanpassingen zou je de inhoud van de 2 arrays moeten krijgen. Kun je die knippen/plakken ?

    foreach($list->product as $items){
    
    	// define category
    	$category = $items->categories->category[0];
    
    	// check if category exists
    	// check category is an array
    	$checkCategory = get_term_by('slug', $category, 'portfolio_category');
    
    	if ($checkCategory->name == ''){
    		$categoryArray = array('cat_name' => $category, 'category_nicename' => $category, 'taxonomy' => 'portfolio_category' );
    		// wp_insert_category($categoryArray);
    print_R($categoryArray);
    	}
    	// create the content
    	$name = $items->name;
    	$price = $items->price;
    
    	// affiliate URL
    	$productURL = $items->productURL;
    		$productURL = w3c_urlfixed($productURL);
    
    	$imageURL = $items->imageURL;
    		$imageURL = w3c_urlfixed($imageURL);
    
    	$description = $items->description;
    
    	//additional content
    	$brand_and_type = $items->additional->field[0];
    	$delivery_time = $items->additional->field[1];
    
    	//create content
    	$content = "";
    
    	//get the correct catagory
    	//check category is an array
    	$term_id = $checkCategory->term_id;
    	echo $category. '<br />';
    
    	// make the post
    	$post = array(
    		'post_content' => $description,
    		'post_name' => $name,
    		'post_status' => 'publish',
    		'post_title' => $name,
    		'post_type' => 'portfolio',
    		'tax_input' => array('portfolio_category' => array($term_id))
    	);
    print_R($post);
    	// $post_id = wp_insert_post($post);
    }
1 reactie aan het bekijken (van in totaal 1)
  • Het onderwerp ‘Custom taxonomy pakt categorie niet’ is gesloten voor nieuwe reacties.