Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 16.09.2018
Сообщений: 35

Как применить функцию только для текущего пользователя по нажатию кнопки?

10.10.2018, 16:33. Показов 1237. Ответов 6
Метки hook, php (Все метки)

Студворк — интернет-сервис помощи студентам
Как применить функцию только для текущего пользователя по нажатию кнопки?
Здравствуйте я новичок в среде worpress и у меня опять возник вопрос
Как применить функцию(хук add_filter) к пользователю который нажал на кнопку? но
только к нему а на всех остальных функция распространятся не должна

Я смог соорудить вот такой код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
add_shortcode ('T1','A2');
 function A2(){ 
$X0 = plugin_dir_url( __FILE__ );  
$X1= '<form method="POST" action="';
$X2= '4.php" enctype="multipart/form-data"  ">
   <p>Выберите фильтр</p>
   <p><input  type="radio" name="p1" id="n1" value="1"> Фильтр 1</p>
   <p><input  type="radio" name="p1" id="n2" value="2"> Фильтр 2</p>
   <p><input  type="radio" name="p1" id="n3" value="3"> Фильтр 3</p>
   <p><input type="submit" value="Обновить"></p>';
$X3 = $X1.$X0.$X2;
    return $X3 ;
    }
?>
4.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$I1 = $_POST ['p1'];
if  ($I1 == '1')
{
echo  'Mir' ;
} 
else if ($I1 == '2')
{
function V2($the_content){
return "lol";
}
add_filter('the_content', 'V2');
} 
else if ($I1 == '3')
{
add_filter('pre_get_posts','exc_post'); 
function exc_post($query) {
if ($query->is_category || ($query->is_home || ($query->is_feed) || ($query->is_tag)))  
{
$query->set('tax_query', array( 
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => array("blue","red"),  
'operator' => 'NOT IN'
)
));
}
return $query;
}
} 
else 
{
}
?>
но к сожалению после нажатия на кнопку фильтр 2,3

мне выдает следующую ошибку

Fatal error: Uncaught Error: Call to undefined function add_filter() in C:\xampp\htdocs\wor\wp-content\plugins\GOG6\4.php:24 Stack trace: #0 {main} thrown in C:\xampp\htdocs\wor\wp-content\plugins\GOG6\4.php on line 24

кто-то знает как решить эту проблему
подскажите пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2018, 16:33
Ответы с готовыми решениями:

Регистрация Com add-in не только для текущего пользователя.
Господа! Помогите! Есть dll, которая является COM add-in для Word. Все пекрасно, но при регистрации она регистрируется только для...

Как по нажатию кнопки передавать в новую форму только текущую запись для редактирования
У меня есть форма в которой отображаеться таблица из базы sql в виде DataRepeater. Возле каждой строчки стоит кнопка. как мне по нажатию...

Применить функцию для кнопки
Доброго времени суток. У меня есть небольшая функция, но как ее использовать не могу ни как понять, т.к. в VB слабо еще разбираюсь... ...

6
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
11.10.2018, 07:08
Ваш скрипт 4.php, вообще ничего о wordpress не знает.
Вы грузите его сам по себе, не в контекте wordpress. Прекратите так делать.

Добавлено через 5 минут

Не по теме:

Извиняюсь, обучать программированию я не умею. И сам ни в каких учреждениях не учился.
Я не знаю как вам объяснить неправильность вашего подхода а писать все самому, за вас, ну как то неверно это.

0
0 / 0 / 0
Регистрация: 16.09.2018
Сообщений: 35
11.10.2018, 08:20  [ТС]
Ваш скрипт 4.php, вообще ничего о wordpress не знает.
Вы грузите его сам по себе, не в контекте wordpress. Прекратите так делать.
ну мне посоветовали загрузить ядро wordpress через
PHP
1
require_once('../../../wp-load.php');
после этого ошибка исчезла но функция не применилась
либо применилась но после перехода(обновления) на страницу сбросилась.
возможно нужен какой то хук для сохранения результата для текущего пользователя
PHP
1
<?php the_author_meta( $field, $user_id ); ?>
но к сожалению гуглить нужный хуки у меня не получается
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
11.10.2018, 08:53
Цитата Сообщение от zeni1agent Посмотреть сообщение
ну мне посоветовали
Костыль вам посоветовали, пойдя у вас на поводу.
Что в моем предыдущем примере с фильтрацией вас не устроило?

Добавлено через 2 минуты
Вам, по сути нужно не писать абы что, а правильно сформулировать и описать то что вы в итоге хотите получить.
0
0 / 0 / 0
Регистрация: 16.09.2018
Сообщений: 35
11.10.2018, 11:25  [ТС]
Что в моем предыдущем примере с фильтрацией вас не устроило?
Если вы имеете веду код который вы мне посоветовали в этой теме Как создать плагин для фильтраций тегов(меток)?
Большое вам спасибо но к сожалению поскольку я не очень хорошо понимаю wordpress то и код понять мне не удалось
поэтому я просто его скопировал в свой плагин и мне выдало ошибку
Warning: Use of undefined constant STYLESHEETPATH - assumed 'STYLESHEETPATH' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\wor\wp-includes\template.php on line 634

Warning: Use of undefined constant TEMPLATEPATH - assumed 'TEMPLATEPATH' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\wor\wp-includes\template.php on line 637

Warning: Use of undefined constant AUTOSAVE_INTERVAL - assumed 'AUTOSAVE_INTERVAL' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\wor\wp-includes\script-loader.php on line 1086

Fatal error: Uncaught Error: Call to a member function using_index_permalinks() on null in C:\xampp\htdocs\wor\wp-includes\rest-api.php:313 Stack trace: #0 C:\xampp\htdocs\wor\wp-includes\rest-api.php(705): get_rest_url() #1 C:\xampp\htdocs\wor\wp-includes\class-wp-hook.php(284): rest_output_link_wp_head() #2 C:\xampp\htdocs\wor\wp-includes\class-wp-hook.php(310): WP_Hook->apply_filters(Array, Array) #3 C:\xampp\htdocs\wor\wp-includes\plugin.php(453): WP_Hook->do_action(Array) #4 C:\xampp\htdocs\wor\wp-includes\general-template.php(2614): do_action('wp_head') #5 C:\xampp\htdocs\wor\wp-includes\theme-compat\header.php(46): wp_head() #6 C:\xampp\htdocs\wor\wp-includes\template.php(688): require_once('C:\\xampp\\htdocs...') #7 C:\xampp\htdocs\wor\wp-includes\template.php(647): load_template('C:\\xampp\\htdocs...', true) #8 C:\xampp\htdocs\wor\wp-includes\general-template.php(41): locate_template(Array, true) #9 C:\xampp\htdocs\wor\wp-content\plugins\GOG9\GOG9.php(7): get_header() #10 C:\xampp\htdocs\wor\wp-settings.php(305): in C:\xampp\htdocs\wor\wp-includes\rest-api.php on line 313
Вам, по сути нужно не писать абы что, а правильно сформулировать и описать то что вы в итоге хотите получить.
Ну если по сути то я пытаюсь с помощью шордкода вывести
в настройках пользователя фильтры для цензурирования
http://keep4u.ru/image/SY7GY
что бы пользователь сам смог выбрать силу Фильтра которое ему более предпочтителен
Например:
Фильтр 1 фильтрует все теги вязаные с цветом
Сила 1 Скрывает все посты с тегами: red, blue, yellow;
Сила 2 Скрывает все посты с тегами: red, blue;
Сила 3 Скрывает все посты с тегами: пусто; // другими словами Сила 3 не скрывает нечего.
Фильтр 2 фильтрует все теги связные с размером
Сила 1 Скрывает все посты с тегами: big, normal, small;
Сила 2 Скрывает все посты с тегами: big, normal;
Сила 3 Скрывает все посты с тегами: пусто; // другими словами Сила 3 не скрывает нечего.
И так далее
по умолчанию у всех фильтров стоит Сила 1
Если пользователь захочет изменить в Фильтр 2 Силу с 1 на 2
после чего нажал кнопку обновить
сайт попросит пароль текущего пользователя
после вода правильного пороля он сможет видеть все посты с тегом small
кроме конечно тех у которых есть так же тег big, normal.

А так же сам выбирать какой конкретно тег он хотел бы скрыть
вписав названия в соответствующее поле.

Ну и в конце добавлять пользователей в черный список что бы не видеть их постов, комментариев, сообщений.
http://keep4u.ru/image/SY7Gn

Но в такой формулировке это больше похоже на задание чем на вопрос
Поэтому я гуглю пытаюсь найти нужные хуки и спрашиваю о хуках и аргументах которые не могу найти
что бы потом собрать этого Франкенштейна и после начинаю молится что бы все это хоть как то сработало и не развалилось в первую же минуту
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
11.10.2018, 13:46
Цитата Сообщение от zeni1agent Посмотреть сообщение
я просто его скопировал в свой плагин
Это не код плагина а код кастомного шаблона для страницы.
Цитата Сообщение от zeni1agent Посмотреть сообщение
пользователь сам смог выбрать силу Фильтра
Не нужно городить огорода с паролями и т.д.
Просто в моем коде (в шабллоне) страницы можно добавить сохранение/восстановление ткущего фильтра для текущего пользователя. Если пользователь не авторизировался, фильтр работает но к примеру не сохраняется. или вообще не видет. по желанию. ну и название тегов в принципе тоже можно сделать.
Цитата Сообщение от zeni1agent Посмотреть сообщение
Поэтому я гуглю пытаюсь найти нужные хуки
Плохо получается. Мало знаний как wp работает.
0
0 / 0 / 0
Регистрация: 16.09.2018
Сообщений: 35
11.10.2018, 19:28  [ТС]
Это не код плагина а код кастомного шаблона для страницы.
ААА теперь понятно, мда глупость моя не знает границ.
Не нужно городить огорода с паролями и т.д.
Ну возможно это покажется странным но пороли нужны на случай если родитель захочет что бы его ребенок посидел на сайте
а поменять фильтр он не смог так как акаунт не его а родителя. Да такой родительский контроль легко обойти создав свой акаунт на левом ящике. Но это лучше чем нечего.
Просто в моем коде (в шабллоне) страницы можно добавить сохранение/восстановление ткущего фильтра для текущего пользователя. Если пользователь не авторизировался, фильтр работает но к примеру не сохраняется. или вообще не видет. по желанию. ну и название тегов в принципе тоже можно сделать.
Код замечательный спасибо но есть некоторые нюансы которые мены безпакоют
1) Тегов больше 1000+ и навряд ли они все поместятся на странице да и щелкать каждый тег навряд ли кому-то понравится

2)Я с легкостью перехожу на смежные ссылки тегов
я заблокировал тег sir но при нажатие на тег blue он мне все равно выведет тег sir если он есть c тегом blue
http://static2.keep4u.ru/2018/... be4567.jpg
http://static2.keep4u.ru/2018/... 6b2c84.jpg
http://static2.keep4u.ru/2018/... 060839.jpg
Я делаю сайт для искусства и тег это основной способ навигаций по сайту

3)страница настроек соединенная со сторонницой новостей не очень то и сочетаются

4)Ну и в теме twentyfourteen на которой я работую он не работает
http://static2.keep4u.ru/2018/... e8c4e5.jpg
Плохо получается. Мало знаний как wp работает.
Ну что правда то правда я с трудом все это понимаю
Я лишь читаю документацию и смотрю туториалы но и они довольно слабо мне помогают
Но мало помалу я двигаюсь к тому что бы создать сайт который мне нужен
Вот поэтому я и говорю что я новичок.
Поэтому большое спасибо за то что помогаете мне в понимание этого.

Добавлено через 4 часа 22 минуты
HectorPrima,
По сути это код не фильтрует а лишь выводит с помощью WP_Query контент по критериям и условиям это скорее поисковик нежели фильтр
Правда я так и не понял как ему удается сохранить значения после обновления
Я только понял что с помощью $ss и $item он соединяется с Id тега и без них сохранение не работает так как они связаны с массивом тегов
и за все отвечает именно этот код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$skip_tags = array();
if (isset($_POST['mytags']))
    $skip_tags = $_POST['mytags'];
$data = get_tags();
?>
<form method="post">
<?php
foreach ($data as $item) {
    $ss = in_array($item->term_id, $skip_tags) ? " checked " : "";
    echo "<input type=\"radio\" " . $ss . " name=\"mytags[]\" value=\"" . $item->term_id . "\"><br>";
}
?>
    <input type="submit" name="submit" value="Submit">
Мне необходимо именно фильтр.
А для этого я должен как то заставить сохранить итоговые значения
но код почему то применяется только на странице на которой была нажата кнопка а при переходе на следующую все сбрасывается
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
add_shortcode ('T1','A2');
 function A2(){ 
 
 return 
    '
    <form method="POST"enctype="multipart/form-data"  ">
   <p>Виберите фильтр</p>
   <p><input  type="radio" name="p1" id="n1" value="1"> Фильтр 1</p>
   <p><input  type="radio" name="p1" id="n2" value="2"> Фильтр 2</p>
   <p><input  type="radio" name="p1" id="n3" value="3"> Фильтр 3</p>
   <p><input type="submit" value="Обновить"></p>';
   
   
   
   
   
}
 
 
 
 
 
$I1 = $_POST ['p1'];
if  ($I1 == '1')
{
echo  'Mir' ;
} 
else if ($I1 == '2')
{
function V2($the_content){
return "lol";
}
add_filter('the_content', 'V2');
} 
else if ($I1 == '3')
{
    
add_filter('pre_get_posts','exc_post'); 
function exc_post($query) {
if ($query->is_category || ($query->is_home || ($query->is_feed) || ($query->is_tag)))    
{
$query->set('tax_query', array(  
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => array("blue","red"),  
'operator' => 'NOT IN'
)
));
}
return $query;
}
} 
else 
{
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2018, 19:28
Помогаю со студенческими работами здесь

Как сделать что бы карты грузились только по нажатию кнопки
Страница долго грузится , на странице стоит reapeter в шаблоне которого есть куски карт яндекса ..... Как сделать что бы например карты...

Как сделать так, чтобы по нажатию кнопки открывалась только одна форма?
Ситуация такова, что есть 20 различных элементов toolStripMenuItem, по нажатию каждого из которых открывается своя форма со своим событием....

Удаление пользователя по нажатию кнопки
Добрый вечер всем. Есть Общая форма &quot;Личный профиль&quot;, при заходи там выводится его данные которые можно изменить. Все эти данные...

Как запретить выполнение функций дважды для текущего пользователя?
У меня есть функция подсчета просмотров if( current_user_can('author') || current_user_can('editor') ||...

Как получить параметры политики безопасности, установленной для текущего пользователя?
Как при помощи powershell получить параметры политики безопасности, установленной для текущего пользователя? Политика учетной записи -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru