Poslao: 04 Feb 2013 00:25
|
offline
- Za Bebe Prodaja
- Novi MyCity građanin
- Pridružio: 29 Sep 2012
- Poruke: 1
|
Pozdrav,
pokušavao sam da rešim petlju koja mi daje Invalid argument supplied for foreach ali bez uspeha.
Stranica na kojoj mi to izbacuje , prikazuje kategorije portfolia bez greške s tim što izleću ova upozorenja na 2 mesta pa ako može neko da pogleda.
Warning: Invalid argument supplied for foreach() in C:\wamp\www\webdynamics\wp-content\themes\vagenta\portfolio.php on line 20
Warning: Invalid argument supplied for foreach() in C:\wamp\www\webdynamics\wp-content\themes\vagenta\portfolio.php on line 42
Evo ga ceo kod stranice.
<?php get_header(); ?>
<div class="container">
<div class="row">
<div class="twelve columns">
<div class="mod modSectionHeader">
<h3 class="text-center">
<?php the_title(); ?>
</h3>
</div>
<div class="mod modGallery <?php echo $columns_count_class; ?>">
<ul class="nav filter">
<?php
// $works = blahlab_latest_posts_of_type('portfolio', -1, 'order');
$works = query_posts("posts_per_page=-1&post_type=portfolio&orderby=menu_order&order=asc");
// blahlab_dump($items);
// $terms = array();
$filters = array();
foreach($works as $work) {
$terms = get_the_terms($work->ID, 'portfolio_category');
foreach($terms as $term) {
if(!in_array($term->name, $filters)) {
$filters[] = $term->name;
}
}
}
sort($filters);
?>
<li id="all"><?php echo blahlab_link_to(__('All', 'blahlab'), null, array('class' => 'current')) ?></li>
<?php foreach($filters as $filter): ?>
<li><?php echo blahlab_link_to($filter) ?></li>
<?php endforeach; ?>
</ul>
<ul class="works">
<?php
$i = 1;
$cols = $columns_count_class == 'four-up' ? 4 : 3;
?>
<?php foreach($works as $work): ?>
<?php
$terms = get_the_terms($work->ID, 'portfolio_category');
$classnames = array();
foreach($terms as $term) {
$classnames[] = $term->name;
}
if($i % $cols == 0) {
$classnames[] = 'last';
}
$i++;
?>
<li class="<?php echo implode($classnames, ' '); ?>">
<div class="image-wrapper">
<a class="image" href="<?php echo get_permalink($work); ?>">
<span><?php echo __('View Project', 'blahlab') ?></span>
<?php echo get_the_post_thumbnail($work->ID, 'portfolio') ?>
</a>
</div>
<p class="text-center"><?php echo get_the_title($work->ID) ?></p>
</li>
<?php endforeach; ?>
</ul>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
Hvala unapred.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 04 Feb 2013 00:57
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Moji predlozi:
1. definišti $works kao niz;
2. proveri da li funkcija query_posts vraća neke vrednosti.
|
|
|
|
Poslao: 04 Feb 2013 01:37
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
Ćao Cvrle , gfactory ovde ( slučajno se ulogovah sa ženinog profila i napisah temu )
query_post daje kategorije portfolija, npr dizajn, programiranje ,seo itd.
Stavio sam iznad query-ja $works = array();
ali to ne rešava stvar.
|
|
|
|
Poslao: 04 Feb 2013 20:38
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Ovako mi ništa drugo ne pada na pamet osim toga, da $query ili je prazan ili nije niz. Izvini što ja ovako ispitujem, a da li si print-ao tu varijablu i video šta ona ima? Probaj pre svake petlje da proveriš da li je u pitanju niz, pa ako jeste, da uđe u tu petlju. Ako se u nekom od slučajeva desi da nije niz, onda ti neće prikazivati grešku.
|
|
|
|
Poslao: 04 Feb 2013 23:15
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3747
- Gde živiš: 127.0.0.1
|
Ususkaj ceo
foreach($works as $work) {
...
}
u:
if ($works) {
...
}
tako da bude:
if ($works) {
foreach($works as $work) {
...
}
}
to bi trebalo da resi problem.
|
|
|
|
Poslao: 05 Feb 2013 12:09
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
Bravo Rasti i hvala puno,
jedna greška je uklonjena sa ovim i to ona druga koja se ponavlja...
za prvu grešku sam stavio isto kao što si mi napisao, ali za nju ne radi.. stavio sam ovako
$works = query_posts("posts_per_page=-1&post_type=portfolio&orderby=menu_order&order=asc");
// blahlab_dump($items);
//$terms = array();
$filters = array();
if ($works) {
foreach($works as $work) {
$terms = get_the_terms($work->ID, 'portfolio_category');
foreach($terms as $term) {
if(!in_array($term->name, $filters)) {
$filters[] = $term->name;
}
}
}
}
sort($filters);
|
|
|
|
Poslao: 05 Feb 2013 22:43
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3747
- Gde živiš: 127.0.0.1
|
Sad pogledah man-page za query_posts() - ta funkcija ne vraca nista (ili eventualno true/false), pa se i ne koristi tako kao sto je ti koristis. Probaj ovako:
<?php
// The Query
query_posts( $args );
// The Loop
while ( have_posts() ) : the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
// Reset Query
wp_reset_query();
?>
|
|
|
|
Poslao: 06 Feb 2013 01:48
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
Hm, probao sam i tako, mada nisam siguran da sam najbolje ugnezdio, dobijao samo s tim i liste ali ne linkovane, jer kategorije su linkovane naravno.
probao sam i ovako npr
$count = count($terms);
if ( $count > 0 ){
echo "<ul>";
foreach ( $terms as $term ) {
echo "<li>" . $term->name . "</li>";
}
echo "</ul>";
}
da ironija bude veća, kad vratim stejtment if($works) opet mi u oba loop-a izbacuje istu grešku, kao na početku.. tup tup
Imaš na početku ceo kod stranice, pa ako te ne mrzi i kad stigneš probaj da ugnezdiš gde treba.
Hvala.
|
|
|
|
Poslao: 13 Feb 2013 18:29
|
offline
- arnage
- Novi MyCity građanin
- Pridružio: 13 Feb 2013
- Poruke: 16
|
Mozes li da pastujes tu funkciju query_posts()?
Sad, ne znam da li samo smeta to sto se vidi upozorenje ili si kao ja da cackas dok sve nije validno, a u slucaju ovog prvog dodaj na vrh strane
error_reporting(0);
|
|
|
|
Poslao: 13 Feb 2013 23:36
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
Napisano: 13 Feb 2013 23:29
@arnage
Ova wp tema je urađena u framework-u i query_posts se koristi za mnoge stvari.
Našao sam funkciju
/**
* Set up the Loop based on the query variables.
*
* @uses WP::$query_vars
* @since 2.0.0
*/
function query_posts() {
global $wp_the_query;
$this->build_query_string();
$wp_the_query->query($this->query_vars);
}
Što se tiče upozorenja, nije problem da ga gledaš u lokalu, al je nedopustivo da stoji na mom ili bilo čijem sajtu, ako me razumeš.
Dopuna: 13 Feb 2013 23:36
Stavio sam error 0 , pošto sam se jako mnogo zezao s tim i oduzeo vreme i sebi i vama kolegama.
Bitno je da sve radi, ostaće ovako.
Hvala i tebi arnage
|
|
|
|