WordPress自定义后循环 - 回声变量一次

时间:2017-05-03 11:08:02

标签: php wordpress

我有一个循环,可以获取所有“custom_post”帖子。它完美地工作 - 除了当我回显一个变量时,它会在有多个帖子时复制变量。

很难解释 - 但基本上如果我有一个帖子它完美无缺。我得到一个Div,其中包含分配给该自定义帖子的班级名称。

当我添加另一个帖子 - 再次起作用,但显示两个div与第二个帖子。我想象它与循环中的echo $变量有关。

有什么想法吗?感谢

修改

CODE:

function display_css() {

    $ids = array();
$args = array( 'post_type' => 'custom_post');
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
array_push( $ids, get_the_ID() );
endwhile;
foreach (array_unique($ids) as $key => $value) {
$check_select_modules = $titan->getOption( 'selec_modules', $value );
if ( "accordianmodule" == $check_select_modules) {
include(DE_DB_PATH . '/lib/modules/accordian.php');
}
elseif ( "textmodule" == $check_select_modules) {
include(DE_DB_PATH . '/lib/modules/text.php');
}
else {
}
}

}
add_action( 'wp_head', 'display_css', 15 );

然后在其中一个PHP脚本中

$css_accordian .= '<style id="css-'.$accordian_module_heading_css_class_display.'">';
echo $css_accordian;

我得到了变量$ accordian_module ......进一步提高了脚本。

2 个答案:

答案 0 :(得分:0)

首先,你错过了一个引用:

from .add import add

应该是:

$variable .= '<div class"'.$classname.;">;

建议:

$variable .= '<div class"'.$classname.'">';

然而..而不是使用foreach第二次循环遍历所有ID,为什么你不在上面的循环中回显div,如下所示:

$ids = array();
$args = array( 'post_type' => 'custom_post');
$loop = new WP_Query( $args );

if ( $loop->have_posts() ) {
    while ( $loop->have_posts() ) {
        $loop->the_post(); 
        array_push($ids, get_the_ID());
    }  
} 

或者你想要一个显示所有帖子的div?

答案 1 :(得分:0)

问题是在这里复制的那段代码中没有设置$ classname。我猜它在这段代码之前被分配了一些值? 我建议在while循环期间将classname设置为$ ids数组(尽管你应该调用其他东西)。像这样的东西,虽然“$ post-&gt; classname”可能不起作用,你必须弄清楚从哪里获取classname。

while ( $loop->have_posts() ) : $loop->the_post();
  $ids[get_the_ID()] = $post->classname;
endwhile;

然后在for循环中,$ value将包含你的类名,所以你可以这样做:

foreach (array_unique($ids) as $key => $value) {
  $variable ='<div class"'.$value.;">;
  echo $variable;
}