Шорткоды взлома Wordpress сайта - PullRequest
0 голосов
/ 21 июня 2011

Я создаю новые шорткоды для Wordpress в моей локальной версии сайта Wordpress.

В functions.php я добавляю, например:

function shortTest() {  
    return 'Test for shortcodes ';  
} 

add_shortcode('shortTestHTML', 'shortTest');  

Добавление только функцииХорошо, но когда я добавляю часть add_shortcode (), у меня возникает серьезная проблема.

Это что-то ломает, и я получаю 500 ошибок, что означает, что я даже больше не могу загрузить свой сайт локально.1009 * Есть мысли ???

Большое спасибо!

РЕДАКТИРОВАТЬ:

Из журнала ошибок PHP: [21-Jun-2011 19:02:37] PHP Fatalошибка: вызов неопределенной функции add_shortcode () в /Users/jonas/Sites/jll/wp-includes/functions.php в строке 4505

Ответы [ 6 ]

6 голосов
/ 22 июня 2011

1) Убедитесь, что вы включили файл shortcodes.php где-нибудь (например, в wp-load.php или в любое другое более подходящее место).

require_once( ABSPATH . '/wp-includes/shortcodes.php' );

2) Убедитесь, что этот файл существует в вашей установке (что, я думаю, у вас есть, иначе мы увидим другую ошибку).

3) Откуда вы вызываете эту функцию (я вижу, что она вызывается из functions.php, но из какого места)? Возможная проблема здесь - functions.php загружается до shortcodes.php, и если вы используете эту функцию add_shortcode до загрузки shortcodes.php, вы, скорее всего, увидите эту ошибку. Дважды проверьте свой код в этом месте - возможно, переведите звонок на add_shortcode в другое место.

2 голосов
/ 27 августа 2014

упомянуто functions.php не в wp-include/ directory.
оно в: wp-content/themes/<your-theme-name>/functions.php

2 голосов
/ 22 июня 2011

добавив это в functions.php, вы говорите? Ну, я не знаю об этом, то, как я это сделал, было создать папку внутри папки wp-content / plugins, например, shortcodetest.

Внутри этой папки создайте файл shortcodetest.php.

в этом файле вы в основном пишете свой код:

<?php
/*
  Plugin Name: ShortCodeTest
  Plugin URI: http://www.example.net
  Description: Print a test message
  Version: 0.1
  Author: anonymous
  Author URI: http://www.example.net
 */

add_shortcode('shortcodetest', 'shortcodetest_function');

function shortcodetest_function() {
    return "test of shortcode";
}

?>

Затем вы авторизуетесь как администратор, увидите плагин ShortCodeTest, активируете его. Тогда вы можете использовать шорткод в своих сообщениях.

Обратите внимание, что комментарии важны ... они отображаются в описании плагина.

1 голос
/ 30 мая 2013

У меня есть способ выполнить их, но это немного сложно:)

Вам нужно немного изменить шаблон, указав свой шорткод (например: [inline ....]) между <shortcode></shortcode>, затем

Вот функция, которую нужно поместить в конец вашей функции.

function parse_execute_and_echo_shortcode($_path) {
    $str = file_get_contents($_path);
    while (strrpos($str, "<shortcode>")) {
        $beginShortcode = strrpos($str, "<shortcode>");
        $endShortcode = strrpos($str, "</shortcode>");
        $shortcode = substr($str, $beginShortcode + 11, $endShortcode - ($beginShortcode+11));
        $shortcode = do_shortcode($shortcode);
        $str = substr_replace($str, $shortcode, $beginShortcode, $endShortcode + 12);
    }
    echo $str;
}

Затем вы можете позвонить function parse_execute_and_echo_shortcode и указать ему путь к вашему файлу, содержащему шорткоды.

Надеюсь, что кто-то может помочь

0 голосов
/ 27 апреля 2012

Поместите свой шорткод в файл /wp-includes/shortcodes.php, таким образом, вы убедитесь, что он будет загружен, когда все удары и свистки запущены.

0 голосов
/ 21 июня 2011

Проверьте файл error.log (он должен находиться в папке журнала apache).

Вероятно, это связано с отсутствующим в качестве функции add_shortcode.

...