web-dev-qa-db-ja.com

ショートコードの後のadd_filter the_content str_replace

add_filter('the_content')関数にPHP str_replaceを追加したいです。私の問題はstr_replaceが呼ばれた後にショートコードがロードされているということです。

私はフォームを出力するショートコードを持っています、私はそれをすべてのHTMLフォームタグで属性autocomplete='off'にすることを望みます。

私が持っているコードをヘレス。

add_filter('the_content', 'disable_autocomplete');
function disable_autocomplete( $content )
{
    return str_replace('<form', '<form autocomplete="off"', $content);
}

何か案は?

5
cnotethegr8

アクションとフィルタの優先順位を変更することができます。これはadd_filter(およびadd_action)の3番目の引数で、デフォルトは10です。そのため、ショートコードやその他のものが挿入された後は優先度を高くしてください。

<?php 
add_filter('the_content', 'disable_autocomplete', 99);
function disable_autocomplete( $content )
{
    return str_replace('<form', '<form autocomplete="off"', $content);
}
6
chrisguitarguy