Wordpress шорткод: ссылка на элемент в DOM

#!/bin/sed -f
1,/^#include/ {
    /^#include/i\
#include "newfile.h"
}

Как работает этот скрипт: для строк между 1 и первым #include (после строки 1), если строка начинается с #include, затем добавьте указанную строку.

, если первая #include находится в строке 1, то обе строки 1 и следующая последующая #include будут иметь добавленную линию. Если вы используете GNU sed, у него есть расширение, в котором 0,/^#include/ (вместо 1,) поступит правильно.

0
задан ascripter 2 March 2019 в 02:42
поделиться

1 ответ

Как я уже говорил в комментариях

-Как функция gettarget может получить доступ к своему брату-члену класса target? - Не может, в WordPress страница не имеет было завершено, когда вызывается [ваш шорткод]. Кроме того, в шорткод передается больше только контента внутри открытого и закрытого шорткода [start]content[/start], ни один из внешнего контента не доступен (без использования javascript)

Вы можете использовать фильтр, такой как add_filter( 'the_content', 'filter_function_name' ) a регулярное выражение /\[gettarget\]/ и то, что не является коротким кодом [gettarget], поскольку WP оставляет их, если они не являются реальными короткими кодами. И тогда, когда у вас есть полный контент в ваших руках, вы можете получить доступ к тому, что вы хотите в DOM. и т. д. и т. д.

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

Примерно так:

add_filter( 'the_content', 'filter_function_name' );

function filter_function_name($content){
    //if no [gettarget] bail
    if(false === strpos($content,'[gettarget]')) return $content;


    $doc = DOMDocument::loadHTML($content);
    $xpath = new DOMXpath($doc);
    var_dump($xpath);

    //for example remove [gettarget] our not shortcode, shortcode
    $content = preg_replace('/\[gettarget\]/', '', $content);

    return $content;
}

Я когда-либо использовал Dom Document только один раз (потом я узнал о PHPQuery и больше никогда не смотрел на него). Но, таким образом, вы не удваиваете загрузку страницы, я действительно не уверен, что вы получаете от этого $doc->loadHTMLFile(

Как я уже говорил в комментариях

-Как функция gettarget может получить доступ к своему брату-члену класса target? - Не может, в WordPress страница не имеет было завершено, когда вызывается [ваш шорткод]. Кроме того, в шорткод передается больше только контента внутри открытого и закрытого шорткода [111], ни один из внешнего контента не доступен (без использования javascript)

Вы можете использовать фильтр, такой как [112] a регулярное выражение [113] и то, что не является коротким кодом [114], поскольку WP оставляет их, если они не являются реальными короткими кодами. И тогда, когда у вас есть полный контент в ваших руках, вы можете получить доступ к тому, что вы хотите в DOM. и т. д. и т. д.

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

Примерно так:

[110]

Я когда-либо использовал Dom Document только один раз (потом я узнал о PHPQuery и больше никогда не смотрел на него). Но, таким образом, вы не удваиваете загрузку страницы, я действительно не уверен, что вы получаете от этого [115] изнутри WordPress. Может быть, просто файл шаблона или что-то в этом роде?

Как я уже сказал выше, я знаю, что content - это то, что WordPress собирается выложить на странице. Не говоря уже о том, что я понятия не имею, как бы вы внесли какие-либо изменения в вывод по сравнению с тем, как это было у вас. Таким образом, вы можете просто изменить содержимое и вернуть его, и оно будет изменено.

-note- Последнее, это была минута, но если я помню, если у вас есть что-то вроде шорткода [gettarget], но у вас нет шорткода для него, он просто остается в контенте. Если это правильно, то, что я сказал выше, должно быть довольно близко. Мы можем использовать это в наших интересах и сделать так, чтобы это выглядело как шорткод внутри административной области WP и в выводе (удалив его).

Я думал о том, чтобы сделать это с помощью JavaScript, но, увы, мне лень вкладывать в это столько ...

1118 В любом случае, надеюсь, это поможет.

SERVER['SCRIPT_NAME']) изнутри WordPress. Может быть, просто файл шаблона или что-то в этом роде?

Как я уже сказал выше, я знаю, что content - это то, что WordPress собирается выложить на странице. Не говоря уже о том, что я понятия не имею, как бы вы внесли какие-либо изменения в вывод по сравнению с тем, как это было у вас. Таким образом, вы можете просто изменить содержимое и вернуть его, и оно будет изменено.

-note- Последнее, это была минута, но если я помню, если у вас есть что-то вроде шорткода [gettarget], но у вас нет шорткода для него, он просто остается в контенте. Если это правильно, то, что я сказал выше, должно быть довольно близко. Мы можем использовать это в наших интересах и сделать так, чтобы это выглядело как шорткод внутри административной области WP и в выводе (удалив его).

Я думал о том, чтобы сделать это с помощью JavaScript, но, увы, мне лень вкладывать в это столько ...

1118 В любом случае, надеюсь, это поможет.

0
ответ дан ArtisticPhoenix 2 March 2019 в 02:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: