Cela devrait être fait en tant que plug-in pour le garder thème indépendant et il faut simplement de filtrer le « contenu » du poste (ou page). Voici un exemple de travail utilisant WooCommerce. Il utilise le même design que vous avez mentionné dans votre message (#XXXXXX), mais je vous recommande de trouver autre chose que le "#" à utiliser comme début du match. Cela correspond à tous les caractères codés en HTML au format ’
. Bien que la recherche de SKU s'assure que vous n'aurez pas de correspondance errante, cela signifie qu'il y aura beaucoup plus de requêtes qu'il n'en faut.
<?php
/*
Plugin Name: Replace SKU with Link
Description: Plugin to replace a formatted SKU (#XXXXXX) with the link to that product
Version: 1.0
*/
defined('ABSPATH') or die('No direct access!');
class SkuReplace {
/*
* On __construct, we will initialize the filter for the content
*/
function __construct()
{
add_filter('the_content', array($this, 'replace_sku_with_link'));
}
/**
* The filter hook get processed here
*
* @return string the filtered content
*/
function replace_sku_with_link($content)
{
// Check if we're inside the main loop in a single post page.
if ((is_single() || is_page()) && in_the_loop() && is_main_query())
{
// Use the callback to check to see if this product exists in the DB
$content = preg_replace_callback(
'/\#[^\s\<]*/',
array($this, 'get_product_url'),
$content
);
}
return $content;
}
/**
* The match is checked against the product entries to verify that it exists
* If it does, it will create the hyperlink and return it, else, it returns
* the original string so as not to break the content
*
* @return string URL or original string
*/
function get_product_url($in)
{
global $wpdb;
$sku = ltrim(rtrim($in[0], " \t\r\n"), '#');
$product_id = $wpdb->get_var(
$wpdb->prepare(
"SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1",
$sku
)
);
if($product_id)
{
$product = new WC_Product($product_id);
$url = get_permalink($product_id) ;
return '<a href="'. $url .'">'. $product->get_name() .'</a>';
}
return $in[0];
}
} // end class
$plugin_name = new SkuReplace();
Il y a beaucoup de questions ici: pourquoi vous demandez-vous quelle langue utiliser? Vous êtes déjà installé sur WordPress, par les sons de celui-ci, qui utilise PHP, comme je suis sûr que vous êtes au courant. Le code snipé vous partagez, bien que possède une extension 'asp' dans l'URL. Je ne sais pas quoi en faire! –
Le site web est un très vieux site web que nous sommes en train de mettre à jour. Nous avons décidé d'aller avec Wordpress pour faciliter la personnalisation et la fonctionnalité. – bworkman
Vous l'avez - et vous cherchez à dupliquer les anciennes fonctionnalités dans wordpress? –