J'essaie actuellement d'ajouter une liste de catégories dans lesquelles se trouve un article personnalisé (seulement 3 catégories). en utilisant le code ci-dessous, j'ai réussi à afficher TOUTES les catégories dans une liste, mais que me manque-t-il pour filtrer uniquement les catégories dans lesquelles cette publication se trouve ... Cela fait des jours que je suis coincé!
Voici le lien pour mieux expliquer - http://mgmtphdjobs.com/manage-jobs/ Comme vous le voyez ... Ci-dessous chaque message TOUTES les 3 catégories sont listés, je n'ai qu'à montrer les catégories dans lesquelles se trouve l'article et pas les autres
Merci
<div id="job-manager-job-dashboard">
<h3><?php _e( 'Job listings are shown in the table below.', 'wp-job-manager' ); ?></h3>
<table class="job-manager-jobs">
<thead>
<tr>
<?php foreach ( $job_dashboard_columns as $key => $column ) : ?>
<th class="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $column ); ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php if ( ! $jobs ) : ?>
<tr>
<td colspan="6"><?php _e( 'You do not have any active listings.', 'wp-job-manager' ); ?></td>
</tr>
<?php else : ?>
<?php foreach ( $jobs as $job ) : ?>
<tr>
<?php foreach ( $job_dashboard_columns as $key => $column ) : ?>
<td class="<?php echo esc_attr( $key ); ?>">
<?php if ('job_title' === $key ) : ?>
<?php if ( $job->post_status == 'publish' ) : ?>
<a href="<?php echo get_permalink( $job->ID ); ?>"><?php echo $job->post_title; ?></a><br> Status:
<br><?php $post_id = get_the_ID();
$terms = wp_get_post_terms( $post_id, 'category' );
foreach ( $terms as $term ) {
echo $term->name;
}
?>
<?php else : ?>
<?php echo $job->post_title; ?> <small> (<?php the_job_status( $job ); ?>)</small>
<?php endif; ?>
<ul class="job-dashboard-actions">
<?php
$actions = array();
switch ( $job->post_status ) {
case 'publish' :
$actions['edit'] = array( 'label' => __( 'Edit', 'wp-job-manager' ), 'nonce' => false );
if ( is_position_filled( $job ) ) {
$actions['mark_not_filled'] = array( 'label' => __( 'Not filled', 'wp-job-manager' ), 'nonce' => true );
} else {
$actions['mark_filled'] = array( 'label' => __( 'Filled', 'wp-job-manager' ), 'nonce' => true );
}
break;
case 'pending_payment' :
case 'pending' :
if ( job_manager_user_can_edit_pending_submissions() ) {
$actions['edit'] = array( 'label' => __( 'Edit', 'wp-job-manager' ), 'nonce' => false );
}
break;
}
$actions['delete'] = array( 'label' => __( 'Delete', 'wp-job-manager' ), 'nonce' => true );
$actions = apply_filters( 'job_manager_my_job_actions', $actions, $job );
foreach ( $actions as $action => $value ) {
$action_url = add_query_arg( array( 'action' => $action, 'job_id' => $job->ID ) );
if ( $value['nonce'] ) {
$action_url = wp_nonce_url( $action_url, 'job_manager_my_job_actions' );
}
echo '<li><a href="' . esc_url( $action_url ) . '" class="job-dashboard-action-' . esc_attr( $action ) . '">' . esc_html( $value['label'] ) . '</a></li>';
}
?>
</ul>
<?php elseif ('date' === $key ) : ?>
<?php echo date_i18n( get_option( 'date_format' ), strtotime( $job->post_date ) ); ?>
<?php elseif ('expires' === $key ) : ?>
<?php echo $job->_job_expires ? date_i18n( get_option( 'date_format' ), strtotime( $job->_job_expires ) ) : '–'; ?>
<?php elseif ('filled' === $key ) : ?>
<?php echo is_position_filled( $job ) ? '✔' : '–'; ?>
<?php else : ?>
<?php do_action( 'job_manager_job_dashboard_column_' . $key, $job ); ?>
<?php endif; ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</tbody>
</table>
<?php get_job_manager_template( 'pagination.php', array( 'max_num_pages' => $max_num_pages ) ); ?>
EDITS:
<div id="job-manager-job-dashboard">
<h3><?php _e( 'Job listings are shown in the table below.', 'wp-job-manager' ); ?></h3>
<table class="job-manager-jobs">
<thead>
<tr>
<?php foreach ( $job_dashboard_columns as $key => $column ) : ?>
<th class="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $column ); ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php if ( ! $jobs ) : ?>
<tr>
<td colspan="6"><?php _e( 'You do not have any active listings.', 'wp-job-manager' ); ?></td>
</tr>
<?php else : ?>
<?php foreach ( $jobs as $job ) : ?>
<tr>
<?php foreach ( $job_dashboard_columns as $key => $column ) : ?>
<td class="<?php echo esc_attr( $key ); ?>">
<?php if ('job_title' === $key ) : ?>
<?php if ( $job->post_status == 'publish' ) : ?>
<a href="<?php echo get_permalink( $job->ID ); ?>"><?php echo $job->post_title; ?></a><br> Status:
<br />
<?php
$terms = wp_get_post_terms( $job->ID, 'job_listing_category' );
foreach ( $terms as $term ) {
echo $term->name;
}
?>
<?php else : ?>
<?php echo $job->post_title; ?> <small> (<?php the_job_status( $job ); ?>)</small>
<?php endif; ?>
<ul class="job-dashboard-actions">
<?php
$actions = array();
switch ( $job->post_status ) {
case 'publish' :
$actions['edit'] = array( 'label' => __( 'Edit', 'wp-job-manager' ), 'nonce' => false );
if ( is_position_filled( $job ) ) {
$actions['mark_not_filled'] = array( 'label' => __( 'Not filled', 'wp-job-manager' ), 'nonce' => true );
} else {
$actions['mark_filled'] = array( 'label' => __( 'Filled', 'wp-job-manager' ), 'nonce' => true );
}
break;
case 'pending_payment' :
case 'pending' :
if ( job_manager_user_can_edit_pending_submissions() ) {
$actions['edit'] = array( 'label' => __( 'Edit', 'wp-job-manager' ), 'nonce' => false );
}
break;
}
$actions['delete'] = array( 'label' => __( 'Delete', 'wp-job-manager' ), 'nonce' => true );
$actions = apply_filters( 'job_manager_my_job_actions', $actions, $job );
foreach ( $actions as $action => $value ) {
$action_url = add_query_arg( array( 'action' => $action, 'job_id' => $job->ID ) );
if ( $value['nonce'] ) {
$action_url = wp_nonce_url( $action_url, 'job_manager_my_job_actions' );
}
echo '<li><a href="' . esc_url( $action_url ) . '" class="job-dashboard-action-' . esc_attr( $action ) . '">' . esc_html( $value['label'] ) . '</a></li>';
}
?>
</ul>
<?php elseif ('date' === $key ) : ?>
<?php echo date_i18n( get_option( 'date_format' ), strtotime( $job->post_date ) ); ?>
<?php elseif ('expires' === $key ) : ?>
<?php echo $job->_job_expires ? date_i18n( get_option( 'date_format' ), strtotime( $job->_job_expires ) ) : '–'; ?>
<?php elseif ('filled' === $key ) : ?>
<?php echo is_position_filled( $job ) ? '✔' : '–'; ?>
<?php else : ?>
<?php do_action( 'job_manager_job_dashboard_column_' . $key, $job ); ?>
<?php endif; ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</tbody>
</table>
<?php get_job_manager_template( 'pagination.php', array( 'max_num_pages' => $max_num_pages ) ); ?>
Peu importe que vous essayiez de tirer la taxonomie d'un CPT, vous pouvez utiliser wp_get_post_terms
$terms = wp_get_post_terms( $job->ID, 'job_listing_category' );
foreach ( $terms as $term ) {
echo $term->name . '<br />';
}
Dans votre cas, $ taxonomy étant 'catégorie'.
Cela ne devrait tirer que les termes de taxonomie pour ce poste ou, dans ce cas, la liste des emplois.