Проблема в русскоязычных тегах в WP при публикации поста php-скриптом

S
На сайте с 29.12.2008
Offline
43
1253

Проблема в русскоязычных тегах в WP 2.7.1 при публикации поста php-скриптом.

Скрипт публикует пост. При указании англоязычных тегов,

теги в посте отображаются нормально

http://сайт.rork.ru/tag/emo (это когда по английски).

А если указать русскоязычные теги,

вместо 'tags_input' => 'tag1, tag2, tag3',

строку 'tags_input' => 'тэг1, тэг2, тэг3'. То пост опубликуется,

но тегов не будет. Самое интересное,

если вручную опубликовать пост, и вписать русскоязычные

теги, то тогда они опубликуются и автоматически транслитилируются

в англоязычные. У меня плагин rus-to-lat.php.

Получается, что когда вручную публикуешь пост

и пишешь русскоязычные теги, то они транслитилируются

в англоязычные и wp публикует пост и видны эти теги.

А когда автоматически публикуешь пост

и прописываешь русскоязычные теги, то они не транслитилируются

в англоязычные и wp публикует пост и не видны эти теги.


<?php
//Добавление записей в WordPress при помощи PHP
require_once('wp-config.php');
// подключить файл, "загружающий" WordPress
//include($pathToWordpress.'/'.'wp-blog-header.php');
// указать параметры
// статус поста - "опубликован"
$post_array = array('post_status' => 'publish',
// автор - админ (пользователь с id = 1)
'post_author' => 1,
// заголовок поста
'post_title' => 'my_title',
// текст поста
'post_content' => 'text',
// название поста
'post_name' => 'pub_title',
// теги
'tags_input' => 'tag1, tag2, tag3',
// категории
'post_category' => array(11, 7)
);
// добавление записи в блог
echo wp_insert_post($post_array);
?>

srarwars добавил 04.05.2009 в 21:04

Если написать 'post_title' => 'Название',

то названия поста не будет.

wdsg
На сайте с 09.02.2009
Offline
31
#1

С CMS, вроде WP, не работаю. Но, предположив, что сам "плагин" лежит в wp-content/plugins/, видимо, можно его дёрнуть и использовать в приведённом коде:


//Добавление записей в WordPress при помощи PHP
require_once('wp-config.php');
require_once('wp-content/plugins/rus-to-lat.php'); // Мне кажется, тут он должен быть...
// подключить файл, "загружающий" WordPress
//include($pathToWordpress.'/'.'wp-blog-header.php');
// указать параметры
// статус поста - "опубликован"
$post_array = array('post_status' => 'publish',
// автор - админ (пользователь с id = 1)
'post_author' => 1,
// заголовок поста
'post_title' => 'my_title',
// текст поста
'post_content' => 'text',
// название поста
'post_name' => 'pub_title',
// теги
'tags_input' => sanitize_title_with_translit('tag1, tag2, tag3'),
// категории
'post_category' => array(11, 7)
);
// добавление записи в блог
echo wp_insert_post($post_array);

Не проверял. За последствия не ручаюсь. В случае, если такое решение не пройдёт, проще всего будет просто добавить свою функцию конверта в транслит.

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
S
На сайте с 29.12.2008
Offline
43
#2

wdsg, к сожалению ничего не получилось.

Странно, когда публикуешь вручную, то плагины работают.

Плагин rus-to-lat.php активирован.

В rus-to-lat.php определён add_action('sanitize_title', 'sanitize_title_with_translit', 0);

но когда публикуешь из php-скрипта,

то это не работает (не вызывается функция sanitize_title_with_translit')

wdsg
На сайте с 09.02.2009
Offline
31
#3
srarwars:
к сожалению ничего не получилось.

Обнародуйте выдачу, пожалуйста.

S
На сайте с 29.12.2008
Offline
43
#4

Выдача - null. Ничего не выдаёт. Просто название поста отсутствует, в админке wp пишет "(без название)".

Да, прямо в скобках пишет.

wdsg - спасибо.

WebDev Systems это пользователь wdsg

Николай &#8206;(22:36):

Проблема в русскоязычных тегах в WP при публикации поста php-скриптом

Это я с форума srarwars

WebDev Systems &#8206;(22:43):

Приветствую.

Николай &#8206;(22:43):

Здравствуйте.

Ну вот так ошибок не выдаёт

просто публикует пост

WebDev Systems &#8206;(22:44):

Сделайте в начале error_reporting(E_ALL);

Первой строкой .

Николай &#8206;(22:44):

щас

Николай &#8206;(22:45):

выдало 178. но это нормально . функция просто выдвла id поста

то что было написано английскими опубликовалось, а то что русскими просто нету. заголовка поста нету.

WebDev Systems &#8206;(22:46):

И никаких ошибок?

Николай &#8206;(22:46):

Нет.

http://erotic.rork.ru/wp-admin/edit.php

пишет (без названия)

Николай &#8206;(22:47):

если у других постов просто название постов пишет, потому что я другие посты вручную публиковал и нормально название пишет на русскиом

то тут нет.

WebDev Systems &#8206;(22:47):

Ну понятно. Что то между ещё работает...

Николай &#8206;(22:47):

Что?

Может не все файлы wp подключи?

WebDev Systems &#8206;(22:48):

Откуда у Вас это программка?

Николай &#8206;(22:48):

какая?

WebDev Systems &#8206;(22:48):

Ну, которой постите автоматом?

Николай &#8206;(22:48):

из кодекс wp

WebDev Systems &#8206;(22:48):

Т.е. она 100% рабочая

Николай &#8206;(22:49):

http://codex.wordpress.org/Function_Reference/wp_insert_post

да 100 % должна работать http://codex.wordpress.org/Function_Reference/wp_insert_post

WebDev Systems &#8206;(22:49):

ok

WebDev Systems &#8206;(22:50):

Вы в курсе, где wp_insert_post() описана?

Глянуть бы на код...

Николай &#8206;(22:50):

какой файл вам передать?

WebDev Systems &#8206;(22:52):

Без понятия. Тот где wp_insert_post() )

Николай &#8206;(22:52):

поискал в поиске по файлам в notepad++

нашло много

Николай &#8206;(22:53):

26 файлов

WebDev Systems &#8206;(22:53):

Ищите function wp_insert_post(

Николай &#8206;(22:54):

wordpress-2.7.1-ru_RU\wp-includes\post.php

Передача файлов отмененаpost.php (108 КБ)

00:01:0500:00:000 байт

Отмена

Николай &#8206;(22:55):

строка 1309

WebDev Systems &#8206;(22:55):

Понятно.

Не идёт загрузка. Попробуйте ещё разок.

Передача файлов отмененаpost.php (108 КБ)

Отправить снова 00:00:4900:00:000 байт

Отмена

Николай &#8206;(22:56):

пробую

вот http://kino-blog.narod.ru/post.php

WebDev Systems &#8206;(22:58):

У Вас в какой кодировке сайт?

Николай &#8206;(22:58):

UTF-8

ссылку дать?

WebDev Systems &#8206;(22:58):

А скриптик этот в какой кодировке?

Николай &#8206;(22:58):

окторым добавляю?

WebDev Systems &#8206;(22:58):

Да.

Николай &#8206;(22:59):

ansi - вот я ппц колун

клоун

WebDev Systems &#8206;(22:59):

)))

Николай &#8206;(22:59):

щас.

Николай &#8206;(23:01):

Спасибо, помогло.

WebDev Systems &#8206;(23:01):

Не за что!!!

Николай &#8206;(23:01):

Вы не будете против если я эту переписку выложу на серч?

ну как ваш ответ на вопрос

WebDev Systems &#8206;(23:01):

Да, конечно. Кому нибудь пригодится.

wdsg
На сайте с 09.02.2009
Offline
31
#5

Если что, переписка опубликована с моего согласия.

K
На сайте с 28.12.2008
Offline
169
#6

у меня заголовок записи на русском не публикуется (только на англ)

движок самый свежий

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий