Intereting Posts
Не удалось загрузить изображения в локальной установке Windows Jetpack Infinite Scroll не будет срабатывать Автоматически показывать мета-поле «таксономия» по умолчанию в «Внешний вид»> «Меню»? Начальная страница стиля магазина с несколькими категориями / петлями и без дубликатов сообщений Как удалить параметр «Показать панель инструментов»? Захват Woocommerce при изменении поля адреса Показать содержимое сайта на основе роли пользователя Показывать название категории продуктов в таблице просмотра заказов на WooCommerce Показывать категории с дочерней категорией, разделенные буквой Почему WordPress не показывает фотографии, когда я загружаю их в новый пост? Фильтр категории WordPress edit.php, чтобы показывать только сообщения из прямой категории, а не сообщения из него. Как экспортировать блог WordPress без функции экспорта? Квази-пользовательский плагин для вызова API Как отображать иерархические теги в формате Yahoo Directory-esque? Получение ошибки «Это содержимое не может быть отображено в кадре» на странице входа

Проблема перезаписи URL-адреса WordPress

blog.com/product/somename

В приведенном выше URL-адресе – как сообщить WordPress, что «продукт» – это переменная, а «somename» – его значение.

Затем, как извлечь это значение и использовать его внутри функции, которую я создам?

Короче, мне нужно: зарегистрировать переменную, проверить url для переменной, извлечь значение, использовать шаблон post post и сгенерировать the_content на основе этого значения, но только если есть значение и только для этого URL-адреса.

Сейчас я не могу регистрировать / извлекать переменную (когда я посещаю вышеупомянутый URL-адрес, я получаю 404), и не указываю, что the_content следует заменять только тогда, когда URL-адрес содержит эту переменную – он просто заменяет содержимое на всех регулярных сообщения.

Вот что я придумал до сих пор:

function product_rewrite_rules(){ add_rewrite_rule('^product/(\d+)/?$','index.php?product=$matches[1]','top'); } add_action( 'init', 'product_rewrite_rules' ); add_filter( 'query_vars', 'setup_filter_query_vars_product' ); function setup_filter_query_vars_product( $query_vars ){ $query_vars[] = 'product'; return $query_vars; } function products_page () { global $wp_query; if( isset( $wp_query->query_vars['product'] )) { $productvalue = $wp_query->query_vars['product']; echo "product is $productvalue"; } } add_filter ('the_content', 'products_page'); 

Что я делаю не так?

Моя рекомендация – зарегистрировать пользовательский тип сообщения . Вы можете назвать его products , а затем все сообщения, помещенные в разделе «Продукты», получат http://domain.com/products/some-product . Когда это будет свой собственный тип сообщения, вы можете указать для него настраиваемый шаблон, single-product.php , и вы можете добавить любые пользовательские поля, классы и т. Д. Оттуда.