Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 列出自定义帖子类型并突出显示当前访问的项目_Php_Css_Wordpress - Fatal编程技术网

Php 列出自定义帖子类型并突出显示当前访问的项目

Php 列出自定义帖子类型并突出显示当前访问的项目,php,css,wordpress,Php,Css,Wordpress,我有一个名为“产品”的自定义帖子类型。在每个产品页面上,我想有一个侧边栏,列出所有产品。侧栏中的当前产品应加下划线 例如,访问产品3时,应突出显示产品3: 侧栏产品1产品2 产品3产品4 我认为解决方案可以是一个包含所有产品的wp菜单,然后使用.current菜单项类来实现突出显示。但是边栏必须在新产品创建时自动更新 下面是我列出所有产品的方式。是否有一种集成当前菜单项功能的方法 <?php $loop = new WP_Query( array( 'post_type' => 'p

我有一个名为“产品”的自定义帖子类型。在每个产品页面上,我想有一个侧边栏,列出所有产品。侧栏中的当前产品应加下划线

例如,访问产品3时,应突出显示产品3:

侧栏

产品1
产品2
产品3
产品4

我认为解决方案可以是一个包含所有产品的wp菜单,然后使用.current菜单项类来实现突出显示。但是边栏必须在新产品创建时自动更新

下面是我列出所有产品的方式。是否有一种集成当前菜单项功能的方法

<?php $loop = new WP_Query( array( 'post_type' => 'product' ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

<?php endwhile; ?>

通过添加这样的类

<a class="current-product" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

是的,有一种简单的方法可以实现这一点

以下是完成您的任务的代码的修改版本:

<?php 
// get the current product ID
$current_post_id = get_the_ID();

$loop = new WP_Query( array( 'post_type' => 'product' ) );
while ( $loop->have_posts() ) {
    $loop->the_post(); 
    ?>
    <a href="<?php the_permalink(); ?>" <?php echo get_the_ID() == $current_post_id ? 'class="current-product"' : ''; ?>><?php the_title(); ?></a>
    <?php 
}
?>

这里,我们基本上将当前产品的ID保存在一个变量中,然后对于列表中的每个产品,我们检查循环产品ID是否等于当前产品ID。如果等于,则显示
class=“current product”
属性