Je veux construire une liste de partenaires. Pour le moment, j'ai essayé avec la fonction "liens", le problème est que je ne peux pas utiliser de balises HTML sur le champ de description. Par conséquent, je cherche une autre solution. Quelqu'un a une suggestion?
Comme NW Tech l'a commenté, vous devez utiliser un type de publication personnalisé. Vérifiez le codex pour register_post_type .
Vous pouvez essayer quelque chose comme ça:
function partners_custom_init() {
$labels = array(
'name' => 'Partners',
'singular_name' => 'Partner',
'add_new' => 'Add New',
'add_new_item' => 'Add New Partner',
'edit_item' => 'Edit Partner',
'new_item' => 'New Partner',
'all_items' => 'All Partners',
'view_item' => 'View Partner',
'search_items' => 'Search Partners',
'not_found' => 'No Partners found',
'not_found_in_trash' => 'No Partners found in Trash',
'parent_item_colon' => '',
'menu_name' => 'Partners'
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'partner' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
);
register_post_type( 'partner', $args );
}
add_action( 'init', 'partners_custom_init' );
Avec ce morceau de code dans functions.php, vous pourrez ajouter des partenaires au fur et à mesure que vous ajoutez des publications ou des pages.
Vous n'expliquez pas où voulez-vous afficher les résultats? Vous pouvez utiliser des modèles de type de message personnalisé ou une requête personnalisée n'importe où dans votre fichiers pour les montrer.
Bien qu’il soit en quelque sorte "déconseillé" au profit des types de publication personnalisés (Je crois que ce ne sera pas possible, à cause de la compatibilité ascendante - ticket de base pertinent ), j'aime bien Links fonctionnalité.
Le code suivant autorise les balises HTML dans le champ Description
, ainsi que dans le champ Notes
champ (il s’agit d’un gros textarea
au lieu du seul champ text
pour la description).
remove_filter( 'pre_link_description', 'wp_filter_kses' );
remove_filter( 'pre_link_notes', 'wp_filter_kses' );
add_filter( 'pre_link_description', 'wp_filter_post_kses' );
add_filter( 'pre_link_notes', 'wp_filter_post_kses' );
Il peut être collé dans le fichier functions.php
du thème, mais il vaut mieux le placer en tant que plugin autonome (donc, il est indépendant du thème).
Voir ce Q & A: Où mettre mon code: plugin ou functions.php?
Ce plugin peut également être d’intérêt, je l’ai fait en me basant sur un sujet WordPress Answers: Featured Link Image .
Comme promis, voici la solution codée en dur que j'ai utilisée par le passé. Cependant, je tiens à préciser que je préfère définitivement la solution de type courrier personnalisé. Si j'en ai l'occasion, j'y reviendrai probablement moi-même.
//edit here to add/remove sponsors
// array('Sponsor Name','name of logo in images folder','url of sponsor site')
$sponsors = array(
array('Sponsor 1','logo1.jpg','http://www.site1.com'),
array('Sponsor 2','logo2.png','http://www.site2.com'),
array('Sponsor 3','logo3.png','http://www.site3.com'),
array('Sponsor 4','logo4.png','http://www.site4.com')
);
$src = get_stylesheet_directory() . '/images/logos/';
?>
<div id='sponsors'>
<?php $i=1;
foreach ($sponsors as $sponsor) {
echo '<a target="_blank" class="sponsors" href="'.$sponsor[2].'" title="'.$sponsor[0].'">
<img class="color" src="'. esc_attr( $src .$sponsor[1] ).' alt="'.$sponsor[0]. ' Logo" class="sponsors" /></a>';
$i++;
} ?>
</div>