Toutes mes réponses sur les forums
-
AuteurMessages
-
26 février 2024 à 6 h 19 min en réponse à : Convertir quotes droites en apostrophes courbes sur le frontend #2468657
Merci pour votre réponse.
J’ai testé le snippet sur la version test de mon site test et cela fonctionne. N’ayant aucune connaissance en code, je voulais m’assurer que je ne risquais pas d’endommager quelque chose si je le mettais sur le prod.
23 novembre 2021 à 17 h 55 min en réponse à : [Résolu] Problèmes critiques dans Santé du site #2389455Après moult recherches j’ai trouvé l’erreur et l’ai corrigée. J’avais ajouté un morceau de code dans le php enfant afin d’être redirigé vers la page d’origine après connexion. Il devait y avoir une erreur de code. J’ai effacé le code et tout est arrangé.
20 novembre 2021 à 13 h 44 min en réponse à : [Résolu] Faire apparaître en frontend le contenu des champs personnalisés ACF #2389219Merci encore.
19 novembre 2021 à 18 h 03 min en réponse à : [Résolu] Faire apparaître en frontend le contenu des champs personnalisés ACF #2389187Alea jacta est. Je me mets aux attributs pour de bon et le responsable des ajouts de livres en sera d’autant plus content.
Veuillez m’excuser pour le code ; je ne savais pas que cela se faisait. Le voici :
<?php
/**
* Bookie Child Theme functions and definitions.
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
add_action( 'after_setup_theme', 'toko_load_childtheme_languages', 5 );
function toko_load_childtheme_languages() {
/* this theme supports localization */
load_child_theme_textdomain( 'bookie-wp', get_stylesheet_directory() . '/languages' );
}
/* Please add your custom functions code below this line. */
// Add child theme styles
add_action( 'wp_enqueue_scripts', 'my_plugin_add_stylesheet' );
function my_plugin_add_stylesheet() {
wp_enqueue_style( 'my-style', get_stylesheet_directory_uri() . '/child-style.css', false, '1.0', 'all' );
}
// Add font field in slider
add_filter( 'cmb_meta_boxes', function($meta_boxes){
array_push($meta_boxes[0]['fields'][1]['fields'], array( 'id' => 'font', 'name' => esc_html__( 'Font', 'toko-sliders' ), 'type' => 'select', 'options' => array( 'adobe-jenson-pro' => esc_html__( 'Adobe jenson pro', 'toko-sliders' ), 'alegreya' => esc_html__( 'Alegreya', 'toko-sliders' )), 'cols' => 6 ));
array_push($meta_boxes[0]['fields'][1]['fields'], array( 'id' => 'btn-visibility', 'name' => esc_html__( 'Button visible?', 'toko-sliders' ), 'type' => 'select', 'default' => 'yes', 'options' => array( 'yes' => esc_html__( 'Yes', 'toko-sliders' ), 'no' => esc_html__( 'No', 'toko-sliders' )), 'cols' => 6 ));
return $meta_boxes;
}, 20 );
// Add Adobe fonts to the website
add_action('wp_head', 'add_adobe_fonts');
function add_adobe_fonts(){
?><link rel="stylesheet" href="https://use.typekit.net/lys4yxt.css"><?php
}
// Change slider front view
function wpa_add_child_shortcodes(){
remove_shortcode('toko_shortcode_slider');
add_shortcode( 'toko_slider', 'toko_shortcode_slider_custom_font' );
}
add_action( 'after_setup_theme', 'wpa_add_child_shortcodes' );
function toko_shortcode_slider_custom_font( $atts ) {
extract( shortcode_atts( array(
'id' => '',
'slug' => '',
), $atts ) );
$slides = get_post_meta( $id, '_slides' );
if ( empty( $slides ) )
return;
$output = '';
$count = 0;
foreach ( $slides as $slide ) {
$output_slide = '';
$style = '';
if($slide['font'])
$style = "style=\"font-family: '".$slide['font']."', sans-serif;\"";
if ( trim( $slide['title'] ) ) {
$output_slide .= '<h2 '.$style.' class="toko-slide-title">'.$slide['title'].'</h2>';
}
if ( trim( $slide['desc'] ) ) {
$output_slide .= '<p '.$style.' class="toko-slide-desc">'.$slide['desc'].'</p>';
}
if ($slide['btn-visibility'] == 'yes') {
if ( trim( $slide['btn_text'] ) ) {
$url = $slide['btn_url'] ? esc_url( $slide['btn_url'] ) : '#';
$output_slide .= '<a '.$style.' class="toko-slide-button" href="'.$url.'">'.$slide['btn_text'].'</a>';
}
}
if ( $output_slide ) {
$count++;
if ( $slide['image'] ) {
$image = wp_get_attachment_url( $slide['image'] );
if ( $image ) {
$style = 'style="background-image:url('.$image.');background-size:cover;background-position:center right;background-repeat:no-repeat;" ';
}
}
$output .= '<div class="toko-slide" '.$style.'><div class="toko-slide-inner"><div class="toko-slide-detail">'.$output_slide.'</div></div></div>';
}
}
if ( $output ) {
$class = $count > 1 ? 'toko-slider-active' : '';
$output = '<div class="toko-slider-wrap"><div class="toko-slides '.$class.'">'.$output.'</div></div>';
if ( $count > 1 ) {
$speed = get_post_meta( $id, '_speed', true );
$speed = intval( $speed ) ? $speed : 5000;
$animation = get_post_meta( $id, '_animation', true ) == 'slide' ? '' : 'fadeOut';
$dots = get_post_meta( $id, '_dots', true ) == 'no' ? 'false' : 'true';
$nav = get_post_meta( $id, '_nav', true ) == 'no' ? 'false' : 'true';
$autoplay = get_post_meta( $id, '_autoplay', true ) == 'no' ? 'false' : 'true';
$hoverpause = get_post_meta( $id, '_hover_pause', true ) == 'no' ? 'false' : 'true';
wp_enqueue_script( 'owlcarousel2' );
wp_enqueue_style( 'owlcarousel2' );
$js_code = "jQuery(function($) { $('.toko-slider-active').owlCarousel({items:1, loop: true, autoplayTimeout: $speed, animateOut: '$animation', dots: $dots, nav:$nav, autoplay: $autoplay, autoplayHoverPause: $hoverpause, lazyLoad: true, smartSpeed: 700, autoHeight:true, navText:['<span class=\"slide-prev-nav\"><i class=\"fa fa-angle-left\"></i></span>','<span class=\"slide-next-nav\"><i class=\"fa fa-angle-right\"></i></span>'] }).addClass('owl-carousel owl-theme'); });";
wp_add_inline_script( 'owlcarousel2', $js_code );
}
}
return $output;
}
function wpa_show_permalinks( $post_link, $post ){
if ( is_object( $post ) && $post->post_type == 'show' ){
$terms = wp_get_object_terms( $post->ID, 'book_author' );
if( $terms ){
return str_replace( '%book_author%' , $terms[0]->slug , $post_link );
}
}
return $post_link;
}
add_filter( 'post_type_link', 'wpa_show_permalinks', 1, 2 );
function my_mce_buttons_2( $buttons ) {
/**
* Add in a core button that's disabled by default
*/
$buttons[] = 'superscript';
$buttons[] = 'subscript';
return $buttons;
}
add_filter( 'mce_buttons_2', 'my_mce_buttons_2' );
function wpb_autolink_featured_images( $html, $post_id, $post_image_id ) {
If (! is_singular()) {
$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;
} else {
return $html;
}
}
add_filter( 'post_thumbnail_html', 'wpb_autolink_featured_images', 10, 3 );
/**
* Bypass logout confirmation.
*/
function iconic_bypass_logout_confirmation() {
global $wp;
if ( isset( $wp->query_vars['customer-logout'] ) ) {
wp_redirect( str_replace( '&', '&', wp_logout_url( wc_get_page_permalink( 'account' ) ) ) );
exit;
}
}
add_action( 'template_redirect', 'iconic_bypass_logout_confirmation' );
<?php $editeur = get_field( 'editeur' ); ?>
<?php if ( $editeur ) : ?>
<a href="<?php echo esc_url( get_term_link( $editeur ) ); ?>"><?php echo esc_html( $editeur->name ); ?></a>
<?php endif; ?>
<?php the_field( 'date_de_parution' ); ?>
<?php the_field( 'nombre_de_volumes' ); ?>
<?php the_field( 'nombre_de_pages' ); ?>
<?php the_field( 'isbn' ); ?>
<?php $presentation = get_field( 'presentation' ); ?>
<?php if ( $presentation ) : ?>
<a href="<?php echo esc_url( get_term_link( $presentation ) ); ?>"><?php echo esc_html( $presentation->name ); ?></a>
<?php endif; ?>
<?php the_field( 'illustrateur' ); ?>Bien entendu, c’était le code avant que je n’ai renoncé aux ACF.
Bonne journée.
- Cette réponse a été modifiée le il y a 3 années par Koenmo.
19 novembre 2021 à 12 h 14 min en réponse à : [Résolu] Faire apparaître en frontend le contenu des champs personnalisés ACF #2389157Me voilà enfin de retour.
Pour les ISBN, une fois que tu as sélectionné ton attribut personnalisé ISBN, il s’affiche avec une zone de saisie et en bas à droite de la zone un bouton ajouter qui te permet de saisir une nouvelle valeur.
Je n’avais pas saisi cette option ; c’est ce qui me faisait bloquer. Je comprends mieux pourquoi je me faisais des nœuds dans le cerveau pour rien. Question à deux sous : n’y a-t-il pas un inconvénient à entrer ainsi des nouveaux termes à chaque produit ? J’ai 1000 produits dans ma boutique, ce qui veut dire 1000 termes pour l’attribut ISBN ; 1000 autres pour l’attribut « nombre de pages »… En soi, cela ne me gêne pas.
Pour ce qui est du code, je n’ai pas obtenu de résultat, mais cela doit venir de ma faute, car mes connaissances en php sont nulles. Je me suis tourné vers un plugin « welaunch group attribute » pour faire le travail.
Mille mercis encore pour tous vos conseils et votre aide.
12 novembre 2021 à 15 h 17 min en réponse à : [Résolu] Faire apparaître en frontend le contenu des champs personnalisés ACF #2388747Merci pour ces éclaircissements. Je renonce à l’idée des ACF. Je reviens vers vous dès que j’aurai obtenu un résultat. Je suis fort pris à l’instant.
11 novembre 2021 à 18 h 28 min en réponse à : [Résolu] Faire apparaître en frontend le contenu des champs personnalisés ACF #2388677Encore merci pour votre soin à me répondre clairement.
Je suis d’accord que je cherche à contourner un problème, mais je ne vois pas comment faire autrement. J’essaye d’expliciter mon cas avec clarté :
J’ai besoin des attributs suivants :
Poids (proposé par défaut par WooCommerce), Dimensions (idem), Éditeur, Date de parution, Nombre de volumes, Nombre de pages, ISBN, Présentation, Illustrateur.
L’attribut « Éditeur » a 148 termes que j’ai enregistrés via le menu Attribut. À la page ajout de produit, dans l’onglet « Attribut » je retrouve « Éditeur », je l’ajoute et j’obtiens un menu déroulant avec tous les éditeurs. Soit.
L’attribut « Présentation » a de même 8 termes pré-enregistrés (broché, relié, cartoné, etc).
En revanche, les autres attributs ont des données particulières à chaque produit. Or si j’enregistre dans le menu « Attribut » l’attribut « ISBN », par exemple, je trouverai bien parmi les attributs à ajouter « ISBN » dans l’onglet « attribut » de la page nouveau produit. Seulement, une fois ajouté, je suis obligé de choisir un terme. Et puisque je n’ai enregistré aucun terme prédéfini (puisque les ISBN sont différents pour chaque livre), je me retrouve bloqué. Idem pour les autres attributs.
Dans le fichier joint cas 1, j’ai choisi d’ajouter un Attribut personnalisé du produit. Je dois écrire l’intitulé (ce qui est fastidieux) mais je puis écrire ce que je veux dans l’entrée. C’est ce que je fais jusqu’à présent.
Dans le cas 2, j’ai pré-enregistré ISBN via le menu « Attribut ». J’ai choisi, dans la page ajout de produit, d’ajouter l’attribut « ISBN » mais je ne parviens pas à écrire du texte dans le champ. Je suis obligé de prendre un des termes… inexistants.
Enfin, avec ce système, je suis obligé de charger un à un les attributs, avec risque de ne pas garder le même ordre pour tous les produits. J’aurais aimé pouvoir charger en une fois tous les intitulés. J’ai l’impression que quelque chose m’échappe et qu’il y a une solution quelque part.
Bonne soirée.
Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.10 novembre 2021 à 18 h 26 min en réponse à : [Résolu] Faire apparaître en frontend le contenu des champs personnalisés ACF #2388636Merci pour votre réponse.
Il est vrai qu’il faut garder aux attributs le terme de taxonomie. N’y a-t-il pas moyen de faire un ACF dont le terme des champs « débouchent » en taxonomie ?
Ce que je cherche à éviter pour les fautes, c’est que je ne doive pas entrer à chaque nouveau livre l’intitulé de l’attribut (Auteur, ISBN, etc). C’est déjà le cas pour les dimensions et le poids, car ils sont par défaut dans Woocommerce. J’entre les dimensions dans Données du produit > Expédition, et les intitulés « Poids » et « Dimensions » s’affichent sur le front end sans que je me soucie de l’orthographe. Peut-être que ceci serait une piste.
Merci pour votre simplification de code. Malheureusement, j’obtiens le même message.
9 novembre 2021 à 20 h 24 min en réponse à : [Résolu] Faire apparaître en frontend le contenu des champs personnalisés ACF #2388592Merci pour la réponse.
Je ne trouve pas le > dans le fichier php. Est-ce dans le code que j’ai ajouté ? Il se fait que la ligne 165 correspond à la première des lignes ajoutées avec le code mentionné ci-dessus. D’ailleurs dès que je supprime ce code, je n’ai plus de message d’erreur.
Si j’utilise ACF (en tout cas j’espère pouvoir l’utiliser ou une solution équivalente) c’est que les attributs sont un système long et fastidieux avec risque d’erreur d’orthographe. Pour un livre, il faut ajouter les attributs ISBN, éditeur, état de l’ouvrage, date de parution, illustrateur. Et cette procédure doit être renouvelée à chaque nouveau produit.
Y aurait-il une meilleure solution que mon idée de ACF ?
Bonne soirée.
18 avril 2020 à 19 h 26 min en réponse à : Enregistrer mon nom, mon e-mail… : problème traduction #2339260Re-boujour,
J’ai trouvé le texte dans le fichier que vous m’indiquez, mais la traduction est juste.
Cela étant, la dernière version que j’obtiens est la 5.4 tout court.
Encore merci.
18 avril 2020 à 17 h 16 min en réponse à : Enregistrer mon nom, mon e-mail… : problème traduction #2339229Merci pour la réponse.
J’ai installé Poedit.
J’ai trouvé les deux fichiers .po et .mo dans le dossier thème mère > Languages, en anglais : je n’y trouve pas l’expression « Save my name…
Dans le thème enfant, il y aussi un dossier Languages et les deux fichiers .po et .mo, mais en français, beaucoup moins fournis.
Faut-il que j’ajoute le texte anglais dans le .po et qu’ensuite je le traduise ?
Encore merci d’avance,
Kambro
17 mars 2020 à 17 h 51 min en réponse à : [Résolu] Boutons dans « Modifier les pages » affichent « undefined » #2303223Le problème est résolu. Je présume que c’est venu suite à une mise à jour, peut-être celle de WooCommerce…
26 décembre 2019 à 23 h 14 min en réponse à : Design page d’accueil modifié suite à essai de Elementor #2290661J’ai trouvé la solution. Il fallait que dans Attributs de page > Modèle je choisisse : Visual composer. Tout est rétabli.
Excusez-moi, pour le dérangement que j’aurais pu vous causer.
Bonne nuit.
-
AuteurMessages