#php #wordpress
#php #wordpress
Вопрос:
Я хочу добавить свои заголовки WordPress, чтобы в них был некоторый статический текст перед публикацией. Поскольку мои сообщения публикуются непосредственно в социальных сетях, когда они публикуются, я хочу, чтобы это происходило перед публикацией.. Я пробовал несколько подходов, но ни один из них не работает. Это вообще не работает
function save_title( $title ){
$text = '#ad #Myblog';
$title = $title.$text;
}
add_action('save_post', 'save_title');
Приведенный ниже код работает, но просто замените весь заголовок статическим текстом и не записывайте текст, который я ввел в заголовок сообщения вручную при написании сообщения
function update_new_post_title( $data ) {
$title = '#ad '.$_POST[ 'title' ];
$data['post_title'] = $title;
return $data;
}
add_filter( 'wp_insert_post_data' , 'update_new_post_title' , '99', 1 );
Я тоже пытался to_title
, но это просто обновило заголовок в WordPress. Не в сообщении перед публикацией.
Не уверен, действительно ли существует способ захвата динамического текста, введенного в post и append. Пожалуйста, помогите.
Ответ №1:
Убедитесь, что https://wordpress.stackexchange.com/a/35993
add_filter( 'wp_insert_post_data' , 'filter_post_data' , '99', 2 );
function filter_post_data( $data , $postarr ) {
// Change post title
if (!strpos($data['post_title'], '_suffix')
$data['post_title'] .= '_suffix';
return $data;
}
Комментарии:
1. Это не работает, поскольку оно обновляет его, добавляя текст несколько раз всякий раз, когда сообщение обновляется или появляется новое
2. Просто проверьте, содержит ли заголовок текст, и если нет, добавьте — см. Мою правку
3. Он по-прежнему добавляет его дважды.. Как только я начинаю новое сообщение, оно вставляет его, предполагая, что в поле нет текста. Он вставляет его снова, когда я нажимаю кнопку публикации
4. Я пытаюсь дать вам несколько ссылок, поскольку у меня нет возможности его протестировать, проверьте следующую ссылку, они меняют slug, но вы можете просто настроить его для изменения заголовка wordpress.stackexchange.com/questions/105926 /…